我添加一个按键事件
private void listView_KeyPress(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Delete)
{
DeleteContact();
}
}
框架自动为其创建类:
this.listView.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.listView_KeyPress);
编译时,我在System.Windows.Forms.KeyPressEventHandler(this.listView_KeyPress)
上收到错误
No overload for 'listView_KeyPress' matches delegate 'System.Windows.Forms.KeyPressEventHandler' D:\...\MainForm.Designer.cs
如果有任何有用的答案,我将不胜感激,谢谢。
最佳答案
KeyPress
事件需要参数 KeyPressEventArgs
而不是 KeyEventArgs
。
然而,KeyPress
事件仅提供您按下的按键的字符。并且DELETE键没有字符。因此,您应该使用事件 KeyDown
来代替,因为这个事件为您提供了 KeyCode:
this.listView.KeyDown+= new System.Windows.Forms.KeyPressEventHandler(this.listView_KeyDown);
private void listView_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Delete)
{
DeleteContact();
}
}
关于c# - 尝试在 C# 中执行按键事件时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21156931/