2009-07-20 49 views
2

我想控制我的winform应用程序的重点。它由一个自定义列表框和其他几个组件组成。 我希望所有的键盘事件都由我的窗口处理程序管理,以避免特定的控制键处理(例如,当我按下一个字符并且列表框处于焦点时,选择以相应字母开头的项目,这不正确行为为我的应用程序)。 我该如何做到这一点?Winform键盘管理

回答

4

确保表单的KeyPreview属性设置为true。然后,此代码应该用于取消您的密钥事件到列表框中...

private void Form1_KeyPress(object sender, KeyPressEventArgs e) 
{ 
    if (this.ActiveControl == listBox1) 
     e.Handled = true; 
} 

KeyPress事件可能不适用于所有您的方案。在那种情况下,我会尝试KeyDown事件。

+0

将e.Handled设置为true将放弃按键? – 2009-07-21 08:48:26