我在面板上有一些控件,我试图使用“删除”按钮将其删除。我按照如何在Windows Panel控件中获取Keypress事件中所述处理KeyPress事件
答案 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
}