Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于触发方法的C#键盘按钮_C#_Keyboard Events - Fatal编程技术网

用于触发方法的C#键盘按钮

用于触发方法的C#键盘按钮,c#,keyboard-events,C#,Keyboard Events,我正在用C#编写一个Hangman程序,当我按下键盘按钮时,我想点击表单上的按钮。我应该在哪里写这个?在form1.load()?中,如果希望在响应键盘事件时使用Form.load()编写代码,则不会使用格式。当您的表单首次加载(显示在屏幕上)时,会发生该事件(并执行其中的代码) 用这个方法来处理和编写代码怎么样?您的表单也有这些事件之一 示例代码: private void Form1_KeyPress(object sender, KeyPressEventArgs e) { But

我正在用C#编写一个Hangman程序,当我按下键盘按钮时,我想点击表单上的按钮。我应该在哪里写这个?在form1.load()?

中,如果希望在响应键盘事件时使用
Form.load()
编写代码,则不会使用
格式。当您的表单首次加载(显示在屏幕上)时,会发生该事件(并执行其中的代码)

用这个方法来处理和编写代码怎么样?您的表单也有这些事件之一

示例代码:

private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
    Button1.PerformClick();
}
将生成一个事件的
单击
。您可以用类似的方式处理
单击
事件:

private void Button1_Click(object sender, EventArgs e)
{
    // do something in response to the button being clicked
    // ...

    MessageBox.Show("Button clicked!");
}

如果这类事件处理内容让您感到困惑,请确保您选择了一本关于C#和/或.NET Framework编程的好书,以便学好它。这是非常重要的,不能忽略

如果希望在响应键盘事件时使用
Form.Load()
编写代码,则不会使用
Form.Load()。当您的表单首次加载(显示在屏幕上)时,会发生该事件(并执行其中的代码)

private void Form_KeyDown(object sender, KeyEventArgs e)
{
  if(e.KeyCode == Keys.Left)
  {
    // Do your hang job
    Button_Click(sender, EventArgs.Empty);
  }
}
用这个方法来处理和编写代码怎么样?您的表单也有这些事件之一

示例代码:

private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
    Button1.PerformClick();
}
将生成一个事件的
单击
。您可以用类似的方式处理
单击
事件:

private void Button1_Click(object sender, EventArgs e)
{
    // do something in response to the button being clicked
    // ...

    MessageBox.Show("Button clicked!");
}

如果这类事件处理内容让您感到困惑,请确保您选择了一本关于C#和/或.NET Framework编程的好书,以便学好它。这是非常重要的,不能忽略

您需要订阅感兴趣的事件并在之后处理它们。但在你需要阅读和研究如何做到这一点之前。这在C#中不是一个困难的问题

private void Form_KeyDown(object sender, KeyEventArgs e)
{
  if(e.KeyCode == Keys.Left)
  {
    // Do your hang job
    Button_Click(sender, EventArgs.Empty);
  }
}


一次性订阅事件创建一个函数,您可以通过单击按钮和向下键调用该函数。

您需要订阅感兴趣的事件,然后进行处理。但在你需要阅读和研究如何做到这一点之前。这在C#中不是一个困难的问题

订阅一次事件创建一个函数,您可以通过单击按钮和向下键调用该函数。

您必须在表单上启用属性,然后必须直接在表单上实现事件:

Form1.KeyPress +=new KeyPressEventHandler(Form1_KeyPress);

private void Form1_KeyPress(object sender, KeyPressEventArgs e) {
        if(e.KeyCode == someKey) {
button1.performclick();
 }

}
必须在窗体上启用属性,然后必须直接在窗体上实现事件:

Form1.KeyPress +=new KeyPressEventHandler(Form1_KeyPress);

private void Form1_KeyPress(object sender, KeyPressEventArgs e) {
        if(e.KeyCode == someKey) {
button1.performclick();
 }

}

否,您应该选择要在其上触发事件的表单,然后转到属性窗格,选择事件选项卡并转到按键事件,双击它并添加一些代码

正常情况下,类似这样的操作可以满足您的需要,只需通过谷歌搜索KeyChar值来确定要控制的按键,您可以添加更多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
快捷方式来执行按钮单击事件。
&符号设置在快捷方式所需的字母之前,请确保不同按钮使用的字母不相同。

否,您应该选择要触发事件的表单,然后转到属性窗格,选择事件选项卡,然后转到按键事件,双击它并添加一些代码

正常情况下,类似这样的操作可以满足您的需要,只需通过谷歌搜索KeyChar值来确定要控制的按键,您可以添加更多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。在这里查看:@GorgiRankovski我刚刚测试了
KeyPreview=false成功了。我理解你的意思,这似乎是合乎逻辑的,但我无法为你解释为什么它会起作用,即使这个属性是假的。有什么想法吗?关于我之前的评论,我考虑了一下我测试的内容(空表单),并用其中的一些控件测试了相同的东西。因此,如果我设置
KeyPreview=false我将能够在不触发按键事件的情况下与控件交互,因此您确实需要激活KeyPreview属性。但是当
KeyPreview=true时
每当我按下键时,它都会触发KeyPress事件,因此我建议对启动操作的键进行一些控制(sugegsted if语句),或者每次点击键盘都会运行这些操作。这可能是有意的,但只是为了让您知道会发生什么。别忘了将表单的属性KeyPreview设置为true。在这里查看:@GorgiRankovski我刚刚测试了
KeyPreview=false成功了。我理解你的意思,这似乎是合乎逻辑的,但我无法为你解释为什么它会起作用,即使这个属性是假的。有什么想法吗?关于我之前的评论,我考虑了一下我测试的内容(空表单),并用其中的一些控件测试了相同的东西。因此,如果我设置
KeyPreview=false我将能够在不触发按键事件的情况下与控件交互,因此您确实需要激活KeyPreview属性。但是当
KeyPreview=true时
每当我按下键时,它都会触发KeyPress事件,因此我建议对启动操作的键进行一些控制(sugegsted if语句),或者每次点击键盘都会运行这些操作。这可能是有意的,但只是为了让你知道会发生什么。如果你发现我们的答案没有回应你的问题,请编辑你的问题w