keyUp事件不起作用[WinForm]

时间:2018-07-17 12:02:55

标签: c# winforms

我在面板上有一些控件,我试图使用“删除”按钮将其删除。我按照如何在Windows Panel控件中获取Keypress事件中所述处理KeyPress事件

1 个答案:

答案 0 :(得分:1)

您的问题是,事件MainForm_KeyUp甚至不会在您的按键上触发,因为您有另一个控件。但是您可以使用KeyPreview来解决此问题。

Form对象具有属性KeyPreview。根据{{​​3}}:

  

获取或设置一个值,该值指示在将事件传递给具有焦点的控件之前,表单是否将接收键事件。

因此设置时:

this.KeyPreview = true;

您可以使您的MainForm始终收到有关这些关键事件的通知。即使任何其他Control都处于聚焦状态。因此,您启用了这些键事件将调用MainForm_KeyUp()

现在设置一个断点:

private void MainForm_KeyUp(object sender, KeyEventArgs e)
{
    //set a breakpoint here, so you get confirmation, that the event will get fired 
    //on key up of the *delete* button

    //...now do what you desire
}