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

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

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

那么怎么解决呢?

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

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

相关推荐
Hy行者勇哥2 小时前
Python 与 VS Code 结合操作指南
开发语言·python
麦兜*8 小时前
Swift + Xcode 开发环境搭建终极指南
开发语言·ios·swiftui·xcode·swift·苹果vision pro·swift5.6.3
萧鼎9 小时前
Python pyzmq 库详解:从入门到高性能分布式通信
开发语言·分布式·python
好望角雾眠9 小时前
第一阶段C#基础-10:集合(Arraylist,list,Dictionary等)
笔记·学习·c#
艾伦~耶格尔10 小时前
【集合框架LinkedList底层添加元素机制】
java·开发语言·学习·面试
yujkss10 小时前
Python脚本每天爬取微博热搜-终版
开发语言·python
yzx99101310 小时前
小程序开发APP
开发语言·人工智能·python·yolo
啊阿狸不会拉杆10 小时前
《算法导论》第 32 章 - 字符串匹配
开发语言·c++·算法
武当豆豆12 小时前
C++编程学习(第25天)
开发语言·c++·学习
-Xie-14 小时前
Maven(二)
java·开发语言·maven