我的表单有几个按钮,例如“扫描”和“退出”。我在许多程序中看到按键可以使用按钮。很多时候,要按的唯一键在按钮的文本中带有下划线(我不知道如何在这些论坛上使用下划线选项!)。我转到表单并添加了一个按键事件:
private void Form1_KeyPress(object sender, KeyPressEventArgs key)
{
switch (key.ToString())
{
case "s":
Run_Scan();
break;
case "e":
Application.Exit();
break;
default:
MessageBox.Show("I'll only accept 's' or 'e'.");
break;
}
}
但是在表单上按“s”或“e”没有任何作用。不确定我哪里出错了?
最佳答案
重写 ProcessKeyCommand 将接受来自表单任何位置的输入。但是,您应该添加修饰符,因为例如在文本框中按“s”或“e”也会触发该操作。
protected override bool ProcessCmdKey(ref Message msg, Keys keyData) {
switch (keyData)
{
case Keys.S:
Run_Scan();
break;
case Keys.E:
Application.Exit();
break;
default:
MessageBox.Show("I'll only accept 's' or 'e'.");
break;
}
return base.ProcessCmdKey(ref msg, keyData);
}
关于c# - 如何使用按键来运行方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8733555/