不包含键的定义

时间:2018-10-05 05:12:32

标签: c#

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

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

  }

我得到的错误是:

  

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

任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:1)

在什么物体上?您必须在对象上分配事件。例如,如果您使用的是文本框,请转到属性,然后在关键部分分配诸如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

答案 2 :(得分:0)

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