C#键盘按钮用于触发方法

时间:2011-12-24 11:00:44

标签: c# keyboard-events

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

5 个答案:

答案 0 :(得分:2)

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

如何处理KeyPress event并在该方法中编写代码呢?你的表格也有其中一个。

示例代码:

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

PerformClick method会为Button control生成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 Framework进行编程的好书,以便您能够很好地学习它。这非常重要,不能跳过!

答案 1 :(得分:2)

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

像这样的Normaly会做你想要的,只需google 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”会加下划线并接受{{ 1}}执行按钮单击事件的快捷方式。 & 符号设置在您想要的快捷方式字母之前,请确保您不要为各种按钮使用相同的字母。

答案 2 :(得分:1)

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

Form1.KeyPress +=new KeyPressEventHandler(Form1_KeyPress);

private void Form1_KeyPress(object sender, KeyPressEventArgs e) {
        if(e.KeyCode == someKey) {
button1.performclick();
 }

}

答案 3 :(得分:0)

private void Form_KeyDown(object sender, KeyEventArgs e)
{
  if(e.KeyCode == Keys.Left)
  {
    // Do your hang job
    Button_Click(sender, EventArgs.Empty);
  }
}

答案 4 :(得分:0)

您需要订阅感兴趣的事件并在之后处理它们。但在你需要阅读和研究如何做之前。这在C#中并不是一个难题。

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

一次订阅活动创建了一个功能,您可以通过按钮点击和从keydown调用。