【发布时间】:2019-09-28 17:36:05
【问题描述】:
我做了一个计算器,剩下要做的就是让它通过键盘输入工作。在我进入 Enter KeyDown 之前,这一切都很完美。问题是,当我启动计算器时,选择了左上角的按钮,如果我按 Enter 键,它将改为调用该特定按钮(数字 7)的方法。似乎如果我点击任何按钮,它将被选中,如果我按 Enter 也会发生同样的事情。
我尝试将我的表单设置为 acceptButton = "none" 和 "equal_btn"(我的相等按钮,我想在按 Enter 时使用它),但没有帮助
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyCode)
{
case Keys.D0:
btn_zero.PerformClick();
/*PerformClick() because all methods are for buttons*/
break;
case Keys.D1:
btn_one.PerformClick();
break;
case Keys.D2:
btn_two.PerformClick();
break;
/*......*/
case Keys.Oemplus:
plus.PerformClick();
break;
case Keys.Enter:
equal.PerformClick();
break;
}
}
我期望的是当我按下 Enter 时,按钮 Equal 方法将被调用。相反,如前所述,它只调用选定的按钮。 顺便说一句,所有其他按钮都可以正常工作。
(希望我没有错过 StackOverflow 上的任何内容,否则很抱歉)
【问题讨论】:
-
首先,设置您的 Tab 键顺序,以便计算器的包含数字的文本框在 Tab 键顺序中排在第一位,然后在每个按钮的 GotFocus 事件上放置一个事件处理程序,并使其处理程序转移焦点回到文本框
-
请问如何更改标签顺序?
标签: c# winforms calculator keyboard-events