繁体   English   中英

不包含键的定义

[英]Does not contain definition for Key

我是编码的新手,如果不合适的话,对不起。 我在C#中尝试识别是否按住了Space键。 我在网上找到了此代码,但无法正常工作。

if (e.Key == Key.Space)
  {

  }

我得到的错误是:

'EventArgs'不包含'Key'的定义,找不到扩展方法'Key'接受类型为'EventArgs'的第一个参数(您是否缺少using指令或程序集引用?)

任何帮助,将不胜感激。

KeyEventArgs包含e.Key

将您的EventHandler更改为KeyEventHandler并使用KeyEventArgs而不是EventArgs

样例代码

public void EventAdder() {
    Child.KeyDown += new KeyEventHandler( OnKeyDown );
}

private void OnKeyDown( object sender, KeyEventArgs e )
{
    switch( e.KeyCode )
    {
        case Keys.Escape:
            Btn_Cancel_Click( sender, e );
            break;
        case Keys.Enter:
            Btn_Commit_Click( sender, e );
            break;
    }
}

在什么物体上? 您必须在对象上分配事件。 如果您使用的是文本框,请转到该属性, Keydown在键部分分配诸如Keydown事件。 (即Textbox1_KeyDown)双击它以查看代码,然后插入您的按键事件参数。

private void Form1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.Key == Key.Space)
    {
        MessageBox.Show("Space pressed");
    }
}

您也可以使用KeyCode e.KeyCode == Key.Space

EventArgs是事件的基类,您必须将其强制转换为特定类型。 在这种情况下,KeyEventArgs。 您会在许多其他情况下注意到这一点。

暂无
暂无

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

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