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

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

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

那么怎么解决呢?

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

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

相关推荐
AsDuang几秒前
Python 3.12 MagicMethods - 55 - __irshift__
开发语言·python
共享家952717 分钟前
Java入门(多态)
java·开发语言
机器视觉知识推荐、就业指导18 分钟前
拆 Qt,为什么要先引入libmodbus?
开发语言·qt
2401_8578652319 分钟前
C++模块接口设计
开发语言·c++·算法
蓝莓星冰乐27 分钟前
第一章:C语言概述与环境搭建
c语言·开发语言
add45a29 分钟前
嵌入式C++低功耗设计
开发语言·c++·算法
毕设源码-赖学姐32 分钟前
【开题答辩全过程】以 基于Java的婚礼策划平台的设计与实现为例,包含答辩的问题和答案
java·开发语言
2401_8747325338 分钟前
C++中的状态模式
开发语言·c++·算法
m0_716667071 小时前
实时数据压缩库
开发语言·c++·算法
dapeng28701 小时前
多协议网络库设计
开发语言·c++·算法