我想在计算器中使用Enter键作为=
,我插入的代码用于检查用户是否按下了表单键中的Enter键,但此if
语句中的代码从不评估为true
:
if (e.KeyChar == (char)Keys.Return || e.KeyChar == (char)13 || e.KeyChar == '\r')
btnequal_click(null,null);
当用户按Enter键时,btnequal_click(null,null)
调用将被触发。
我需要做些什么来改变这项工作?
答案 0 :(得分:3)
您只需将表单的AcceptButton
属性设置为btnequal
即可。这应该给你想要的行为(当在该表单上输入时调用btnequal_click
get。)。
只要您的表单未使用ShowDialog
打开,就会在您点击“接受”后关闭。
答案 1 :(得分:2)
好的,即使我们对这段代码没有任何线索,请允许我提供一些指导。将KeyPreview
的{{1}}属性设置为Form
。这将确保您获得所有关键事件。
接下来,处理表单的true
或KeyDown
事件,并将代码放在那里。
我建议使用KeyUp
,因为如果按住键,则会复制KeyUp
。
最后您需要的是:
KeyDown
答案 2 :(得分:0)
由于OP表示他们正在使用KeyPress事件(或暗示),我将尝试遵循这一点。事实上,我最近编写了一个完全相同的计算器。这是我的代码:
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)Keys.Enter)
btnequal.PerformClick();
}
请注意,我使用了PerformClick函数,因为我发现它更简单。另外,正如neoistheone所提到的,请确保将Form KeyPreview设置为true!