我正在用 C# 编写程序,我想知道用户何时按下\按下键盘按钮(目前:键盘上的 1-9 个按钮)。
我该怎么做?
Tal Stol
问问题
944 次
4 回答
4
Control.KeyPress
事件(和相关的KeyDown
and KeyUp
)应该做你需要的。只需为表单中需要的事件处理程序定义一个事件处理程序:
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
MessageBox.Show("Key pressed: " + e.KeyChar);
}
链接下的 MSDN 页面有一个更广泛的示例,用于处理“特殊”键(您需要使用KeyPress
或KeyDown
)。
如果您想在焦点不在您的表单上时捕获键,那完全是另一回事,但我不认为这是您想要捕获键 1-9 的情况。不是典型的全局热键 :)
于 2009-08-16T12:46:10.587 回答
2
不要忘记将KeyPreview属性设置为 true,否则表单上的其他控件(如果您的表单上有其他控件)将在表单获取事件之前接收事件(如果它们有焦点)。
于 2009-08-16T13:53:11.163 回答
0
将函数挂钩到窗体的 OnKeyUp 事件。 看这里
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
}
}
于 2009-08-16T12:47:58.230 回答
0
您搜索的是 2 个事件 KeyDown 和 KeyUp。
KeyUp 是当“被”按下一个键并且用户抬起他的手指时。KeyDown 是另一个事件。
只需采取新的形式。转到事件(按 F4),您将找到 KeyDown 和 Up。
private void maskedTextBox1_KeyDown_1(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
等等:D
于 2009-08-16T12:48:24.657 回答