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

问题描述

我的程序首先有一个主窗体并在其Panel里建立了一个MDI子窗体子窗体中有panel和image两个控件但是子窗体的KeyDown事件并不被触发请教原因啊(keyPreview已为true)

解决方案

解决方案二:
而且我发现首次创建MDI子窗体后切回到桌面再切回来KeyPress可以正常触发了,但是关闭再新建一个MDI子窗体就不行了
解决方案三:
看代码,事件有没有注册,是不是什么地方影响到了。
解决方案四:
只在子窗体有焦点时触发
解决方案五:
引用2楼guwei4037的回复:

看代码,事件有没有注册,是不是什么地方影响到了。

看1楼,有时能触发啊
解决方案六:
引用3楼xuzuning的回复:

只在子窗体有焦点时触发

试过强制给它焦点依然不触发
解决方案七:
问题解决了确实是焦点的问题因为焦点一直在MDI父窗体的某个控件上,在将父窗体的KeyPreview设为true后发现的谢谢大家

时间: 2024-10-23 03:20:33

C# 窗体程序的 KeyDown 事件不触发的相关文章

控件-C# 单窗体keydown事件不响应

问题描述 C# 单窗体keydown事件不响应 没有别的控件,具体情况如下: 解决方案 this.keydown += form1_keydown; 这个写了么 解决方案二: 直接从属性窗口的事件双击,keycode,控制按键用e.control&e.keycode 解决方案三: 问题一描述:当新建一个窗体时,添加KeyDown事件后,会正常处理,但是当添加有控件时,比如Button,TextBox,不会触发窗体的KeyDown事件,也没有调用KeyDown事件的处理程序. 原因:由于窗体中添加

WinForm,如何解决窗体KeyDown事件(快捷键)对文本框的影响(如delete键)

问题描述 定义了Form的KeyDown事件,来响应常用快捷键,如Del,但在文本框是按Del也会进行响应,请问如果让文本框不影响? 解决方案 解决方案二:想了好几天,没能想出来.一在CSDN发贴就想到了...每次都这样,感觉好败家,分数都这样没的解决方案三:对文本框同样进行KeyDown事件,屏蔽del解决方案四:引用2楼xdashewan的回复: 对文本框同样进行KeyDown事件,屏蔽del 先执行窗体的,再执行文本框的,所以,这个方法不行解决方案五:败家份子,说下你怎么解决的呗解决方案六

恼火,为什么不触发keydown事件

问题描述 我在datagridview控件中注册keydown事件了,程序启动后按键盘毫无反应,为什么啊? 解决方案 解决方案二:试试keypress解决方案三:试试keypress解决方案四:我用以下代码实验,能引发KeyDown事件.你清理下代码,看看哪句话引发了问题.publicpartialclassForm1:Form{publicForm1(){dataGridView1=newDataGridView();((ISupportInitialize)(dataGridView1)).

Winform窗体中某些控件怎么触发键盘事件

问题描述 我在使用中想给Label和MSChart添加键盘事件,但好像这些控件无法获取焦点所以事件总是不起作用.在查到资料如:非字符键不会引发KeyPress事件:但非字符键却可以引发KeyDown和KeyUp事件.使用KeyChar属性在运行时对键击进行取样,并且使用或修改公共键击的子集.我不知道为什么给MSChart添加了KeyDown和KeyUp事件,还是没反应? 解决方案 解决方案二:整个form的KeyPress事件,试试看解决方案三:引用1楼hanjun0612的回复: 整个form

android防止提交事件时触发多个表单中的按钮_Android

单击拍照 button ,执行该函数 getPhoto() ,窗体执行的函数 funcSubmit() ng-submit 自动. 什么会需要更改,以防止这种情况发生?它执行的功能只有 getPhoto() 而无需运行 ng-submit 的形式. Ps.: 这段代码是应用程序的一部分 android 移动,用离子框架开发 <ion-view title="OS"> <form ng-submit = "funcSubmit()"> <

控件-求助:button点击事件无法触发

问题描述 求助:button点击事件无法触发 前台是这样的 已选择: </ul> <asp:Button ID="btn_update_app" runat="server" Text="确定" onclick="btn_confirm_Click" /> <input id="Button3" type="button" value="取消&qu

解决方案-winform窗体程序怎么设置QQ的定时重启

问题描述 winform窗体程序怎么设置QQ的定时重启 使用winfrom窗体程序,怎么定时启动QQ应用程序,谢谢 有解决方案的可以帮帮忙吗 在这里谢谢了 下面是我个人邮箱254243717@qq.com 解决方案 只要启动QQ吗?用一个winform程序加个timer定时器就是了,找到qq.exe所在的路径,然后process.start启动. 解决方案二: 可以调用Win32 API CreateProcess/ShellExecuteEx() 解决方案三: 先获取进程列表,然后根据进程名判

在MDI的子窗体中,KeyDown和MouseWheel就无法响应了

问题描述 在MDI的子窗体中,定义了KeyDown.MouseWheel.MouseMove.MouseDown等事件,触发MosueMove事件后,KeyDown和MouseWheel就无法响应了.请问是什么原因?谢谢! 解决方案 解决方案二:在子窗体的MouseDown中加入boolbolFocus=this.MdiParentForm.Focus();得到bolFocus为false,父窗体获取焦点失败.在父窗体中定义子窗体映像frmChildForm,在出现这种情况后运行boolbolF

让WPF窗体程序支持命令行方式运行的三种方式

有的时候,我们希望窗体程序也能接受命令行参数,以Console的方式运行.但是实现起来却要一些小技巧才能做到.如果做一个WPF程序,在Window的Loaded事件里写这样的语句: Console.WriteLine("Hello word."); 然后从CMD运行之.会发现这个语句根本没有输出出来.如图1所示. 图1. 从命令行运行Wpf程序 对于这个问题有三个解决方案.三个方案各有优缺点,请酌情选择. 1.使用more命令:这种方案不需要修改任何代码,只要在从命令行运行时加个 &q