KeyPressed事件调用其他事件

时间:2014-01-23 09:57:09

标签: c# winforms events

我的WinForm上有一个OK按钮。

我想通过输入按下来选择单击确定按钮。

这是我的代码:

void MyFormKeyPress(object sender, KeyPressEventArgs e)

    {
       if (e.KeyChar==13)

          {
            //What have I to do in order to call ButtonOK click event?
          }
    }

感谢名单

4 个答案:

答案 0 :(得分:2)

您可以将表单的Form.AcceptButton属性设置为您的按钮。

  

使用此属性可以指定当用户在应用程序中按Enter键时发生的默认操作。分配给此属性的按钮必须是IButtonControl,它位于当前表单上或位于当前表单的容器中。

示例:

表单名称为form1,按钮为button1,然后

 form1.AcceptButton = button1;

应该做你想做的事。

或者您可以使用现有代码并致电

   yourButton.PerformClick();

答案 1 :(得分:1)

只需调用 PerformClick 方法:

void MyFormKeyPress(object sender, KeyPressEventArgs e)
    {
        if (e.KeyChar == 13)
            {
                ButtonOK.PerformClick(); // <- click ButtonOK
            }
    }

但更好的解决方案是将MyForm的 AcceptButton 属性设置为 ButtonOK ;在这种情况下,您不必对KeyPress事件做任何事情。

答案 2 :(得分:1)

只要您对sender和EventArgs对象不感兴趣,您也可以直接调用事件处理程序:

void MyFormKeyPress(object sender, KeyPressEventArgs e)
    {
        if (e.KeyChar == 13)
            {
                ButtonOK_ClickHandler(null, null);
            }
    }

答案 3 :(得分:1)

void MyFormKeyPress(object sender, KeyPressEventArgs e)
{
    if (e.KeyChar == 13)
        {
            OkButton_Click(null, null);
           // or you can use OkButton.PerformClick();
        }
}