2013-11-03 68 views
0

我想在计算器中使用Enter键作为=,并且我插入了检查用户是否按下表格按键中的Enter键的代码,但是此代码if声明从不计算true如何在计算器中使用Enter键作为=按钮

if (e.KeyChar == (char)Keys.Return || e.KeyChar == (char)13 || e.KeyChar == '\r') 
    btnequal_click(null,null); 

btnequal_click(null,null)调用应该火的时候,用户按下回车键。

我需要做些什么才能完成这项工作?

+5

你有哪些代码?什么事件处理器? –

+0

他提到“form key press”sp我假设它在MainForm的KeyPress EventHandler中。 –

+0

我可以建议你在“if”上放一个break语句。然后按回车键,看看e.KeyChar的值是多少 –

回答

2

好的,尽管我们对代码的位置没有任何线索,但让我提供一些指导。将FormKeyPreview财产设置为true。这将确保您获得所有关键事件。

接下来,处理表单中的KeyDownKeyUp事件并将代码放置在那里。

我会推荐KeyUp,因为如果按住键,KeyDown会被复制。

最后,所有你需要的是这样的:

if (e.KeyChar == (char)Keys.Return) 
    btnequal_click(null,null); 
3

您可以在表单的AcceptButton属性只是设置为btnequal。这应该会给你想要的行为(btnequal_click当在表单上输入时被调用)。

只要您的表单未使用ShowDialog打开,在您点击“接受”后它将不会关闭。

0

由于OP表示他们正在使用KeyPress事件(或暗示),所以我会尝试遵循这一点。事实上,我最近编写了一个完全一样的计算器。这里是我的代码:

private void Form1_KeyPress(object sender, KeyPressEventArgs e) 
{ 
    if (e.KeyChar == (char)Keys.Enter) 
     btnequal.PerformClick(); 
} 

请注意,我使用PerformClick函数,因为我觉得它更简单。另外,正如neoistheone提到的那样,确保将Form KeyPreview设置为true!