如何使用按键来运行方法
本文关键字:运行 方法 何使用 | 更新日期: 2023-09-27 18:19:38
我的表单有几个按钮,如"扫描"answers"退出"。我在许多程序中看到,按键可以使用按钮。很多时候,要按下的唯一键都会在按钮上的文本中加下划线(我不知道如何在这些论坛上使用下划线选项!)。我转到表单并添加了一个按键事件:
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);
}
我认为您正在寻找所谓的访问密钥:象征
去掉KeyPress事件处理程序。你不需要它。
将按钮的文本更改为"扫描"answers"退出"。
此外:以下是关于在windows应用程序中使用访问密钥的一些指导原则。
key.ToString()
是错误的调用方法。您想要访问密钥属性:key.KeyChar
。
有关KeyPressEventArgs的更多信息,请参阅MSDN,其中包括示例。
您可以在要为按钮的Text属性中的按钮设置热键的字母前面放一个与号。您可以在表单设计器的"属性"窗格中设置"文本"属性,也可以通过编程方式进行设置。下面是一个方案方法的例子。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// make the 'B' key the hot key to trigger the key press event of button1
button1.Text = "&Button";
}
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("B");
}
}