我有一个简单的表单来接收输入:
12个按钮,1个文本框(已禁用且只读)
这是我处理输入的方法:
Login_KeyDown()是我为每个UI组件和表单本身调用的通用方法,来处理KeyDown事件。
private void Login_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Escape)
{
Application.Exit();
}
else if (e.KeyCode == Keys.NumPad9 || e.KeyCode == Keys.D9)
{
button3.BackgroundImage = Properties.Resources.button_hover;
button3.ForeColor = Color.White;
pin.Text = pin.Text + "9";
}
else if (e.KeyCode == Keys.Back)
{
button11.BackgroundImage = Properties.Resources.button_hover;
button11.ForeColor = Color.White;
if (pin.Text.Length > 0)
pin.Text = pin.Text.Substring(0, pin.Text.Length - 1);
}
else if (e.KeyCode == Keys.Enter)
{
MessageBox.Show(pin.Text);
}
}
这段代码在我启动应用程序后正常工作,但是在我点击任何组件后,“Enter Key Condition”就不起作用了。
我的猜测是,“Enter Key Condition”在UI组件中无法工作或类似的问题。
我也尝试使用“Key Press Event”,它使用KeyPressEventArgs,然后检查KeyChar == 13,但那也不起作用。
问题出在哪里?我该如何解决?
附言:我没有为任何按钮设置按钮单击事件,该应用程序完全基于KBoard。