【发布时间】:2009-07-21 22:18:47
【问题描述】:
我想控制我的 winform 应用程序的焦点。它由一个自定义列表框和其他几个组件组成。 我希望所有键盘事件都由我的窗口处理程序管理,以避免特定的控制键处理(例如,当我按下一个字符并且列表框被聚焦时,选择了以对应字母开头的项目,这不是正确的行为对于我的应用程序)。 我怎样才能做到这一点?
【问题讨论】:
标签: c# winforms focus keyboard-events
我想控制我的 winform 应用程序的焦点。它由一个自定义列表框和其他几个组件组成。 我希望所有键盘事件都由我的窗口处理程序管理,以避免特定的控制键处理(例如,当我按下一个字符并且列表框被聚焦时,选择了以对应字母开头的项目,这不是正确的行为对于我的应用程序)。 我怎样才能做到这一点?
【问题讨论】:
标签: c# winforms focus keyboard-events
确保表单的 KeyPreview 属性设置为 true。那么这段代码应该可以取消你的关键事件到列表框...
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
if (this.ActiveControl == listBox1)
e.Handled = true;
}
KeyPress 事件可能不适用于所有场景。在这种情况下,我会尝试 KeyDown 事件。
【讨论】: