检测回车键按下按钮c#

时间:2018-01-12 08:25:44

标签: c# winforms

这段代码检测大多数密钥并将其放入messageBox中,但其中一个密钥不是输入密钥。 *请注意,它是 key_down 方法

MessageBox.Show(e.KeyData.ToString());

到目前为止,我已经尝试了很多方法来修复和搜索很多答案 我试过这个

private void button1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{

    if (e.KeyCode == Keys.Enter)
    {


        MessageBox.Show("this is it");
        e.IsInputKey = true;
    }

}

说0个引用我知道我没有调用该方法但我在哪里调用它? 无论我在哪里打电话,都会出错。

3 个答案:

答案 0 :(得分:3)

删除此行

 e.IsInputKey = true;
 private void button1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
    {
        if (e.KeyCode == Keys.Enter)
        {
            MessageBox.Show("this is it");
            //e.IsInputKey = true;
        }
    }

    private void button1_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Enter)
        {
            MessageBox.Show("this is it");
            //e.IsInputKey = true;
        }
    }

答案 1 :(得分:2)

在Form1设计属性中:

AcceptButton属性设置下拉为button1或您Button的名称

按钮的KeyUp事件

private void button1_KeyUp(object sender, KeyEventArgs e)
{
     if (e.KeyCode == Keys.Enter)
      {
          MessageBox.Show("Enter key has been pressed");
      }
}

 private void button1_KeyUp(object sender, KeyEventArgs e)
        {
            button1_KeyDown(sender, e);
        }

        private void button1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                MessageBox.Show("Enter key has been pressed");
            }
        }

答案 2 :(得分:0)

在此之后不久放置此行:InitializeComponents(); - > button1.PreviewKeyDown +=new PreviewKeyDownEventHandler(button1_PreviewKeyDown);
您尝试使用的事件只会在您专注于该按钮时触发。重点是以两种不同的方式传递(通过用户交互),其中一种是实际鼠标点击该元素,另一种是“标签”到控件,并确保您阅读“事件”和“EventsHandlers”