如何解决这个错误。
'System.Windows.Forms.KeyPressEventArgs'不包含'KeyCode'的定义,也没有找到接受第一个参数类型为'System.Windows.Forms.KeyPressEventArgs'的扩展方法'KeyCode'(你是否缺少一个使用指令或汇编引用?
编码。
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
MessageBox.Show("Enter Key Pressed ");
}
}
我使用Visual studio 2010, framework 4做这个项目。
你不能得到 KeyCode
从 KeyPress
(至少不用使用一些映射)事件,因为 按键事件参数(KeyPressEventArgs 只提供 键盘字符 属性。
但你可以从 KeyDown
事件. 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
按键
键入
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 ");
}
}
试试这个
private void game_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)Keys.Enter)
MessageBox.Show(Keys.Enter.ToString(), "information", MessageBoxButtons.OK, MessageBoxIcon.Information);
}