繁体   English   中英

检测按钮上的Enter键c#

[英]Detecting Enter key press on a button c#

这段代码检测大多数键并将其放在messageBox中,但Enter键不是它的键之一。 *注意这是一个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引用 ,我知道我没有在调用该方法,但是在哪里调用它? 无论我在哪里调用它,都会出现错误。

您删除此行

 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;
        }
    }

在您的Form1设计属性中:

AcceptButton属性将下拉列表设置为button1Button的名称

按钮的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");
            }
        }

将以下行放在后面: InitializeComponents(); -> button1.PreviewKeyDown +=new PreviewKeyDownEventHandler(button1_PreviewKeyDown);
您尝试使用的事件只会在您专注于该按钮时触发。 通过两种不同的方式(通过用户交互)传递焦点,其中一种是在元素上的实际鼠标单击,另一种是在控件上的“制表”,并确保您了解“ Events”和“ EventsHandlers”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM