c# - Winform键盘管理

标签 c# winforms focus keyboard-events

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

最佳答案

确保表单的 KeyPreview 属性设置为 true。那么这段代码应该可以用于取消列表框的按键事件...

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

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

关于c# - Winform键盘管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1155840/

相关文章:

c# - 从注册表中读取字符串值会产生一些垃圾字符

Android ViewPager 在错误的位置显示软键盘

java - 将焦点放在 JLayeredPane 中的 JPanel

c# - 如何获取 WPF DataGrid 单元格的位置?

c# - 只跳一次直到角色落地

c# - .NET Core 配置的环境变量与构建配置

c# - 如何让我的应用程序从“开始”菜单运行?

c# - 关于多语言的一些问题

c# - 如何动态更改/设置 checkedListBox 项目前颜色

jQuery .focus(在字段 X 上)导致 .blur(在字段 X 上)被调用