我正在用C#编写一个程序,我想知道用户何时按下\按下键盘按钮(目前:键盘上的1-9个按钮)。
我该怎么做?
答案 0 :(得分:4)
Control.KeyPress
事件(以及相关的KeyDown
和KeyUp
)应该做您需要的事情。只需为表单中所需的事件处理程序定义一个事件处理程序:
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
MessageBox.Show("Key pressed: " + e.KeyChar);
}
该链接下的MSDN页面有一个更广泛的示例,用于处理“特殊”键(您需要使用KeyPress
或KeyDown
)。
如果你想在焦点不在你的表单上时捕获键,那完全是另一回事,但我不认为这是你想要捕获1-9键的情况。不是典型的全球热键:)
答案 1 :(得分:2)
不要忘记将 KeyPreview 属性设置为true,否则表单上的其他控件(如果表单上有其他控件)将在之前收到事件(如果他们有焦点)形式得到它。
答案 2 :(得分:0)
将函数挂钩到表单的OnKeyUp事件。 see here
private void form1_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e)
{
if ((e.KeyCode < Keys.NumPad0 || e.KeyCode > Keys.NumPad9) || (e.KeyCode < Keys.D0 || e.KeyCode > Keys.D9))
{
//Do something
}
}
答案 3 :(得分:0)
您搜索的内容是2个事件KeyDown和KeyUp。
KeyUp是按下“按键”并且用户抬起手指的时候。 KeyDown是另一个事件。
只需要一张新表格。转到事件(按F4),您将找到KeyDown和Up。
private void maskedTextBox1_KeyDown_1(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
等等:D