我正在用C#编写一个Hangman程序,当我按下键盘按钮时,我希望点击表单上的按钮。我应该在哪里写这个?在form1.load()中?C#用于触发方法的键盘按钮
回答
如果您希望它发生在键盘事件中,您不会在Form.Load()
中编写代码。当表单第一次加载(出现在屏幕上)时,发生该事件(并执行其中的代码)。
如何处理KeyPress
event并在该方法中编写代码?你的表单也有这些事件之一。
示例代码:
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
Button1.PerformClick();
}
的PerformClick
method将产生一个Click
事件的Button
control。您可以处理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等节目拾起一本好书你学得很好。这是非常重要的,不要跳过!
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
一次创建,您可以从点击按钮,并从的keydown调用一个函数。
你必须在表格上启用KeyPreview财产,那么你必须直接在表格上实现了KeyPress事件:
Form1.KeyPress +=new KeyPressEventHandler(Form1_KeyPress);
private void Form1_KeyPress(object sender, KeyPressEventArgs e) {
if(e.KeyCode == someKey) {
button1.performclick();
}
}
不,你应该选择表要在其上该事件触发,然后进入属性窗格,选择事件标签并下降到KeyPress事件,双击它并添加一些代码。
Normaly这样的事情会做你想做的,只是谷歌keyCode值,以确定要控制按键,你可以添加更多的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
}
[编辑]我只记得你可能也要考虑快捷方式,在这种情况下,Button1.Text
属性应该标记为&Button1
,这样“B”会加下划线并接受alt+B
快捷方式来执行按钮单击事件。 &符号在您想要的快捷方式的字母前面设置,请确保您不要对各种按钮使用相同的字母。
不要忘记将窗体的属性KeyPreview设置为true。 看看这里: http://msdn.microsoft.com/en-us/library/system.windows.forms.form.keypreview%28v=VS.100%29.aspx – 2011-12-24 12:04:10
@GorgiRankovski我刚刚用' KeyPreview = false;'它工作。我明白你在说什么,这似乎是合乎逻辑的,但我没有理由为你,至于为什么它的作品,即使那个财产是虚假的。有任何想法吗? – 2011-12-24 12:24:32
关于我以前的评论,我想了解一下我测试过的东西(空表单),并用一些控件测试了相同的东西。因此,如果我设置了'KeyPreview = false;'我将能够与控件进行交互而不触发KeyPress事件,因此您需要激活KeyPreview属性。但是当'KeyPreview = true;'它会在任何时候按下按键触发KeyPress事件,所以我会建议一些控制什么键被设置为触发操作(如果语句是sugegsted)或者键盘上的每个命中都会运行这些操作。这可能是有意的,但只是让你知道会发生什么。 – 2011-12-24 16:57:10
- 1. 按钮和链接键盘触发
- 2. 有没有办法让键盘触发按钮按下?
- 3. c#按键触发按钮单击
- 4. 键盘下方的按钮
- 5. 在不按键盘按键的情况下触发键盘按键事件
- 6. 如何触发用于隐藏内置键盘的后退按钮事件?
- 7. 使按钮触发键2按钮
- 8. 调换触摸屏键盘按钮[PYTHON]
- 9. 按钮的HTML触发IOS上的活动键盘?
- 10. jQuery的按键时触发按钮
- 11. move didFinishLaunchingWithOptions:使用按钮触发器的viewcontroller方法的方法
- 12. 触发键盘事件,WebKit的键盘不会触发事件
- 13. 有没有办法使用c#代码按键或触发键盘上的按键?
- 14. 使用键盘的“返回”(完成)按钮调用方法
- 15. 按钮将不会触发方法
- 16. 触发多个按键来激发键盘快捷键jquery
- 17. 当退格键盘按钮单击时,onKey不会触发android
- 18. 在键盘可见时,iOS按钮点击不会触发?
- 19. 触发按钮通过键盘输入点击
- 20. 删除可能触发按钮,键盘输入
- 21. 按钮单击后没有触发ActionScript 3键盘事件
- 22. C#按钮没有触发?
- 23. 禁用android键盘按钮
- 24. 禁用iphone键盘按钮
- 25. 软键盘按钮
- 26. onClickListener键盘按钮
- 27. 如何触发水平方向键盘?
- 28. 使用键盘“按下”TButtonedEdit按钮使用键盘
- 29. 输入键上的IE触发按钮
- 30. 按钮点击时的jQuery触发键
如果您发现我们的答案没有回答您的问题,请编辑您的问题以获取更多信息,以便我们详细阐述一些问题。如果您已经有了答案,请通过标记为正确的答案告诉我们,谢谢。 – 2011-12-29 17:51:24