如何从keybord做Button_Click?

时间:2016-09-04 10:23:13

标签: c# winforms


如何做我的" Button_click"当我按下键盘上的某个键时?
我的代码:

corona

...

KeyPress事件仅在窗体上的按钮处于焦点时才会运行,但我需要KeyPress,就像我按下键盘上的按钮一样。左。请给你一个问题的回答。
并且不要严格,我只是一个初学者......

1 个答案:

答案 0 :(得分:2)

您要问的是什么并不完全清楚,但我想您想要在键盘上的按键和用户点击按钮时执行相同的操作。

在MSDN上查看this topic以获取key_press:

void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
    if (e.KeyChar >= 48 && e.KeyChar <= 57)
    {
        MessageBox.Show("Form.KeyPress: '" +
            e.KeyChar.ToString() + "' pressed.");

        switch (e.KeyChar)
        {
            case (char)49:
            case (char)52:
            case (char)55:
                MessageBox.Show("Form.KeyPress: '" +
                    e.KeyChar.ToString() + "' consumed.");
                e.Handled = true;
                break;
        }
    }
}

要在2事件中执行相同的操作,您可以编写另一个方法并从两个事件中调用它们。

public void MyAction(mypars)
{
....
}

void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
  MyAction(mypars);
}
private void Button_Click(object sender, EventArgs e)
{
  MyAction(mypars);
}

也可以调用另一个事件方法,因为它们和其他方法一样,但我真的不建议这样做!但它是这样的:

private void button1_KeyPress(object sender, KeyPressEventArgs e)
{
  Button_Click(sender,new EventArgs());
}

更新

你必须比“我希望我的按钮被按下”更好。如果您的意思是视觉效果,您可以设置控件的焦点,如:

myButton.Focus();

希望我能帮助你:)

更新2

你必须像这样使用它

void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
  MyAction(mypars);
  myButton.Focus();
}

如果你需要它只关注特殊字符,那么在做任何事情之前检查它,比如

void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
  if (e.KeyChar >= 48 && e.KeyChar <= 57)
  {
    MyAction(mypars);
    myButton.Focus();
  }
}
相关问题