c# - 尝试在 C# 中执行按键事件时出错

标签 c# events keypress

我添加一个按键事件

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/

相关文章:

javascript - 是否可以使用媒体 key 来控制网站?

android - 如何识别键盘上按下的空格

c# - AccessViolationException 如果我将变量声明为公共(public)成员,而不是局部变量

vb.net - 如何在VB中拦截Windows窗体的退出事件?

c# - 代码访问安全 - 理解为什么 SecurityTransparent 可以调用 SecurityCritical

php - 在 Facebook 上创建事件

c# - GUI 事件是否有可能中断 GUI 线程的运行代码以执行其自己的事件处理程序方法?

jquery - 使用 jQuery 触发按键

c# - ASP.NET Web API - 如何更改 XML 对象图中的最大项数

c# - 将数据表转换为字节数组