如何解决此错误:
' System.Windows.Forms.KeyPressEventArgs'不包含定义 对于KeyCode'没有扩展方法' KeyCode'接受第一个 类型' System.Windows.Forms.KeyPressEventArgs'的参数可能 发现(您是否缺少using指令或程序集引用?)
代码:
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
MessageBox.Show("Enter Key Pressed ");
}
}
我正在使用Visual Studio 2010,这个项目的框架4。
答案 0 :(得分:4)
您无法从KeyCode
获取KeyPress
(至少不使用某些映射)事件,因为KeyPressEventArgs仅提供KeyChar属性。
但你可以从KeyDown
event获得它。 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之前:
关键事件按以下顺序发生:
的KeyDown
按键响应
KEYUP
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 ");
}
}
答案 1 :(得分:0)
尝试
private void game_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)Keys.Enter)
MessageBox.Show(Keys.Enter.ToString(), "information", MessageBoxButtons.OK, MessageBoxIcon.Information);
}