2

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

4

1 回答 1

4

确保表单的 KeyPreview 属性设置为 true。然后这段代码应该可以取消你的关键事件到列表框......

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

KeyPress 事件可能不适用于所有场景。在这种情况下,我会尝试 KeyDown 事件。

于 2009-07-20T21:16:37.017 回答