如何做我的" Button_click"当我按下键盘上的某个键时?
我的代码:
corona
...
KeyPress事件仅在窗体上的按钮处于焦点时才会运行,但我需要KeyPress,就像我按下键盘上的按钮一样。左。请给你一个问题的回答。
并且不要严格,我只是一个初学者......
答案 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();
希望我能帮助你:)
你必须像这样使用它
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();
}
}