C# 窗体程序的 KeyDown 事件不触发

午夜不睡觉 2015-07-18 09:47:12
我的程序首先有一个 主窗体 并在其Panel 里建立了一个MDI子窗体 子窗体中 有panel 和image 两个控件 但是子窗体的 KeyDown 事件并不被触发 请教原因啊(keyPreview 已为true)
...全文
984 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_40266909 2019-07-04
  • 打赏
  • 举报
回复
引用 楼主 Liubo5574186 的回复:
我的程序首先有一个 主窗体 并在其Panel 里建立了一个MDI子窗体 子窗体中 有panel 和image 两个控件 但是子窗体的 KeyDown 事件并不被触发 请教原因啊(keyPreview 已为true)
请问怎么解决的? 最近也遇到这个问题
  • 打赏
  • 举报
回复
不要胡乱将窗体放到什么 Panel 控件中。窗体不放到任何空间“中”,Mdi 方式仅仅是指名 Mdi 主窗体就行了。那种将窗体嵌入子控件的编程设计方法是不对的。
污春天的琴 2016-11-03
  • 打赏
  • 举报
回复
引用 2 楼 guwei4037 的回复:
看代码,事件有没有注册,是不是什么地方影响到了。
没有注册编译的时候都会报错吧·
流火火 2016-11-01
  • 打赏
  • 举报
回复
引用 6 楼 Liubo5574186 的回复:
问题解决了 确实是焦点的问题 因为焦点一直在MDI父窗体的某个控件上,在将父窗体的KeyPreview 设为true后发现的谢谢大家
请问如何解决的?
午夜不睡觉 2015-07-18
  • 打赏
  • 举报
回复
引用 2楼guwei4037 的回复:
看代码,事件有没有注册,是不是什么地方影响到了。
看1楼,有时能触发啊
xuzuning 2015-07-18
  • 打赏
  • 举报
回复
只在子窗体有焦点时触发
全栈极简 2015-07-18
  • 打赏
  • 举报
回复
看代码,事件有没有注册,是不是什么地方影响到了。
午夜不睡觉 2015-07-18
  • 打赏
  • 举报
回复
而且我发现 首次创建 MDI子窗体 后切回到桌面 再切回来 KeyPress可以正常触发了 ,但是关闭再新建一个MDI子窗体就不行了
午夜不睡觉 2015-07-18
  • 打赏
  • 举报
回复
问题解决了 确实是焦点的问题 因为焦点一直在MDI父窗体的某个控件上,在将父窗体的KeyPreview 设为true后发现的谢谢大家
午夜不睡觉 2015-07-18
  • 打赏
  • 举报
回复
引用 3楼xuzuning 的回复:
只在子窗体有焦点时触发
试过强制给它焦点依然不触发

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧