【C#】KeyDown事件不被触发的问题。

在c#的winform工程中,可能会遇到创建了一个对话框,该对话框内包含了控件作为这个对话框的一部分。软件运行时,键盘输入按键,却没有办法触发对话框的KeyDown事件。是不是很奇怪呢?

首先要明白:主对话框被激活的场合,该对话框相应的事件才能被触发。其次,主对话框的属性:KeyPreview需要设置为true。如:

那么怎么解决呢?

1.主对话框的属性KeyPreview设置为True。

2.当对话框的控件操作结束后,将父窗口也就是主对话框设置为焦点。如:this.Parent.Focus()。如果有多层嵌套的场合,可以设置为:this.Parent.Parent.Focus();依此类推。

相关推荐
v***870414 小时前
QoS质量配置
开发语言·智能路由器·php
Wpa.wk15 小时前
自动化测试环境配置-java+python
java·开发语言·python·测试工具·自动化
yangshuquan15 小时前
使用 C# + IronOcr,轻松实现图片文字自动识别(OCR)和提取
c#·ocr·编程技巧·winforms
天天代码码天天15 小时前
TSR18测速雷达C#对接
c#·雷达测速·tsr18测速雷达
道一2315 小时前
C#获取操作系统版本号方法
开发语言·c#
道一2315 小时前
C# 判断文件是否存在的方法
开发语言·c#
信仰_27399324315 小时前
Java面试题
java·开发语言
闫有尽意无琼15 小时前
银河麒麟v11 arm编译Qt creator8.0.2报错
开发语言·qt
小此方15 小时前
从零开始手搓堆:核心操作实现 + 堆排序 + TopK 算法+ 向上调整 vs 向下调整建堆的时间复杂度严密证明!
开发语言·数据结构·算法
_OP_CHEN16 小时前
从零开始的Qt开发指南:(五)Qt 常用控件之 QWidget(上):解锁 Qt 界面开发的核心基石
开发语言·c++·qt·前端开发·qwidget·gui开发·qt常用控件