用于触发c#键盘按钮的方法
本文关键字:按钮 方法 键盘 用于 | 更新日期: 2023-09-27 18:18:40
我正在用c#编写Hangman程序,当我按下键盘按钮时,我希望表单上的按钮被单击。我应该写在哪里?在form1.load () ?
不,你应该选择表单你想要触发的事件,然后转到属性窗格,选择事件标签并向下到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调用。