如何修复此错误:
“System.Windows.Forms.KeyPressEventArgs”不包含定义
对于“KeyCode”并且没有扩展方法“KeyCode”接受第一个
“System.Windows.Forms.KeyPressEventArgs”类型的参数可以是
找到(您是否缺少 using 指令或程序集引用?)
Code:
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
MessageBox.Show("Enter Key Pressed ");
}
}
我在这个项目中使用 Visual Studio 2010,框架 4。
你无法得到KeyCode
from KeyPress
(至少不使用一些映射)事件因为按键事件参数 https://msdn.microsoft.com/en-us/library/system.windows.forms.keypresseventargs.keychar(v=vs.110).aspx仅提供KeyChar https://msdn.microsoft.com/en-us/library/system.windows.forms.keypresseventargs.keychar(v=vs.110).aspx财产。
但你可以从KeyDown event https://msdn.microsoft.com/en-us/library/system.windows.forms.control.keydown(v=vs.110).aspx. System.Windows.Forms.KeyEventArgs
有所需的KeyCode
财产:
private void Form1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
MessageBox.Show(e.KeyCode.ToString());
}
如果 KeyDown 事件不适合您,您仍然可以将 KeyCode 保存在某个私有字段中,并稍后在 KeyPress 事件中使用它,因为在正常情况下,每个 KeyPress 之前都会有 KeyDown:
关键事件按以下顺序发生:
private Keys m_keyCode;
private void Form1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
this.m_keyCode = e.KeyCode;
}
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
if (this.m_keyCode == Keys.Enter)
{
MessageBox.Show("Enter Key Pressed ");
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)