我正在用C#编写一个Hangman程序,当我按下键盘按钮时,我希望单击表单上的按钮。我应该在哪里写这个?在form1.load()?
答案 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调用。