[英]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.