用于触发c#键盘按钮的方法

本文关键字:按钮 方法 键盘 用于 | 更新日期: 2023-09-27 18:18:40

我正在用c#编写Hangman程序,当我按下键盘按钮时,我希望表单上的按钮被单击。我应该写在哪里?在form1.load () ?

用于触发c#键盘按钮的方法

不,你应该选择表单你想要触发的事件,然后转到属性窗格,选择事件标签并向下到KeyPress事件,双击它并添加一些代码。

通常像这样的东西会做你想要的,只需谷歌KeyChar值来确定你想要控制的keyPress,你可以添加更多的if语句:

private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
    if (e.KeyChar == (char)13)
        {
            Button1.PerformClick();
        }
    //Other if statements if you want to keep an eye out for other keyPresses
}

[edit]我刚刚记得你可能也在考虑快捷键,在这种情况下,Button1.Text属性应该标记为&Button1,这样"B"将被下划线,并接受alt+B快捷键来执行按钮单击事件。&符号被设置在你想要的快捷键的字母之前,确保你不要在不同的按钮上使用相同的字母。

如果您希望它在响应键盘事件时发生,则不会在Form.Load()中编写代码。当您的表单首次加载(出现在屏幕上)时,该事件发生(并执行其中的代码)。

如何处理KeyPress事件并在该方法中编写代码呢?您的表单也有这些事件之一。

示例代码:

private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
    Button1.PerformClick();
}

PerformClick方法将为Button控件生成Click事件。您可以用类似的方式处理Click事件:

private void Button1_Click(object sender, EventArgs e)
{
    // do something in response to the button being clicked
    // ...
    MessageBox.Show("Button clicked!");
}

如果这些事件处理的东西让你感到困惑,确保你拿起一本关于c#和/或。net框架编程的好书,这样你就能很好地学习它。这是非常重要的,不能忽略!

你必须在表单上启用KeyPreview属性,然后你必须直接在表单上实现KeyPress事件:

Form1.KeyPress +=new KeyPressEventHandler(Form1_KeyPress);
private void Form1_KeyPress(object sender, KeyPressEventArgs e) {
        if(e.KeyCode == someKey) {
button1.performclick();
 }
}
private void Form_KeyDown(object sender, KeyEventArgs e)
{
  if(e.KeyCode == Keys.Left)
  {
    // Do your hang job
    Button_Click(sender, EventArgs.Empty);
  }
}

您需要订阅感兴趣的事件,然后处理它们。但在此之前,你需要阅读和学习如何做到这一点。在c#中这不是一个困难的问题。

http://msdn.microsoft.com/en-us/library/ms171534.aspx

一次性订阅事件创建一个函数,您可以从button click和keydown调用。