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

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

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

那么怎么解决呢?

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

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

相关推荐
Tech_gis17 分钟前
C++ 观察者模式
开发语言·c++·观察者模式
卑微求AC17 分钟前
继电器原理及应用
c语言·开发语言·51单片机·嵌入式
曳渔23 分钟前
Java-数据结构-反射、枚举 |ू・ω・` )
java·开发语言·数据结构·算法
laocooon52385788624 分钟前
java 模拟多人聊天室,服务器与客户机
java·开发语言
风槐啊25 分钟前
六、Java 基础语法(下)
android·java·开发语言
网安老伯43 分钟前
【2024版】最新kali linux入门及常用简单工具介绍(非常详细)零基础入门到精通,收藏这一篇就够了_kalilinux
linux·运维·服务器·开发语言·web安全·网络安全·xss
laocooon5238578861 小时前
java类的混搭,
java·开发语言
yngsqq1 小时前
005集—— 用户交互之CAD窗口选择图元实体(CAD—C#二次开发入门)
windows·c#·交互
爱写代码的小朋友1 小时前
Python 中的高阶函数与闭包
开发语言·python
番茄灭世神1 小时前
C语言的类型提升机制
c语言·开发语言