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

问题描述

在MDI的子窗体中,定义了KeyDown、MouseWheel、MouseMove、MouseDown等事件,触发MosueMove事件后,KeyDown和MouseWheel就无法响应了。请问是什么原因?谢谢!

解决方案

解决方案二:
在子窗体的MouseDown中加入boolbolFocus=this.MdiParentForm.Focus();得到bolFocus为false,父窗体获取焦点失败。在父窗体中定义子窗体映像frmChildForm,在出现这种情况后运行boolbolFocus=frmChildForm.Focus();得到也为false。使用select()函数也是这样的结果,请问是什么原因呢?请问该如何解决呢?谢谢!!答案一还是没有找到原因,不过想了个蹩脚的方法:点击子窗体时判断一下Focused;若为false则this.Hide();this.Show();呵呵,屏幕闪一下焦点就回来了。不过挺汗的。在好多地方都问了,都没有人回。在想是不是.net的问题。问另一个方面的问题:MDI子窗体不是父窗体的控件,那么他和其他控件之间的焦点的层次是什么样呢?

时间: 2024-09-07 13:53:37

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

如何在MDI子窗体中使用TransparencyKey属性

问题描述 如何在MDI子窗体中使用TransparencyKey属性如果窗体不是MDI子窗体,则可以通过设置TransparencyKey属性使得窗体透明.但如果窗体时MDI子窗体,这个属性就无效了.请教有什么办法使得MDI子窗体透明或其TransparencyKey属性生效. 解决方案 解决方案二: 解决方案三:感觉是来踢馆的解决方案四:是不可以的,让MDI子窗体再穿透MDI主窗体实在有点为难windows了不知为何一定要MDI呢?解决方案五:引用3楼xuzuning的回复: 是不可以的,让M

C# 子窗体中调用父窗体中的方法(或多窗体之间方法调用)

本文转载:http://www.csframework.com/archive/2/arc-2-20110805-1771.htm 文章侧重点主要是讨论"窗体"与"窗体"之间方法的调用,以及"MDI父窗体"与"Chilid子窗体"之间如何相互的调用方法. C# 子窗体中调用父窗体中的方法(或多窗体之间方法调用) 看似一个简单的功能需求,其实很多初学者处理不好的,很多朋友会这么写: C# Code: //父窗体是是frmPare

如何在父窗体的ListView中获取子窗体中datagridview中的值

问题描述 如何在父窗体的ListView中获取子窗体中datagridview中的值?详细啊本人只是初学者 解决方案 解决方案二:datagridview弄成public

winform子窗体中的多线程怎么完全释放

问题描述 winform子窗体中的多线程怎么完全释放 我在主窗体中打开一个子窗口,然后这个子窗口中有三个多线程,当窗口关闭的时候,如何完全释放掉这三个多线程.要不然每次打开就会多三个线程,系统会越来越卡. 补充:我的三个线程里都是while(true){}无限循环 解决方案 线程执行完毕就会自行释放,你一定要让线程有退出的条件,比如置一个变量,在内部循环中判断,从而退出while等循环操作 解决方案二: 当然,有强制杀死进程的api方法,但是不提倡使用 解决方案三: 可以在窗口退出事件如OnFo

c#winfrom 如何在子窗体中获取 父窗体中的datagridview选中行的id?

问题描述 c#winfrom 如何在子窗体中获取 父窗体中的datagridview选中行的id? c#winfrom 如何在子窗体中获取 父窗体中的datagridview选中行的id? 解决方案 用this.dataGridView1.CurrentRow.Cells[0].Value获得id 窗体传值看我的代码http://bbs.csdn.net/topics/360140208 解决方案二: 用委托或事件传递也可以 解决方案三: 通过静态字段传过去,在父窗体的选中事件下获取选中行的id

在母窗体中嵌入子窗体,可不可以再在子窗体中再嵌入窗体

问题描述 比如有母窗体form1在form1中嵌入了子窗体form2,我现在想把form3嵌入到form2中,请问要怎么实现的,我把form2的IsMdiContainer设为true,运行时会报错;请大侠指教 解决方案 解决方案二:把form3的parent设置为form2解决方案三:我在form2的一个事件里这样写,但不行,为什么呢Report3Report3=newReport3();Report3.MdiParent=this;Report3.WindowState=FormWindow

急~~在子窗体中打开另个子窗体并关闭本窗体`为什么只关闭本窗体而无法打开

问题描述 DimfrmAsNewMDImainDimfrm2AsNewform2frm2.MdiParent=frmfrm2.Show()Me.Hide()我那里错了?? 解决方案 解决方案二:'DimfrmAsNewMDImain去掉!Dimfrm2AsNewform2frm2.MdiParent=me.MdiParentfrm2.Show()Me.Hide()'或直接Close掉解决方案三:当你使用NewMDImain的时候,只是把frm2加到了一个未显示出来的刚建立的MdiMain中了,而

c#中如何控制模态子窗体中的进度条

这个问题会让一些初学者感到困惑,一方面模态窗体在打开之后(Form.ShowDialog).主线程无法继续执行下面的事务:另一方面,又要在处理事务的时候来同步这个窗体里面的进度条.这两件事情都必须做,却都不能先做... 所以很多人不得不把事务处理写到模态窗体当中去,这样可以达到目的,却造成了代码结构混乱,而且子窗体无法复用,如果有多个事物,不得不为每个事务来写控制窗体. 这里我们介绍一种比较直接了当的方法,就是主线程中开启两个子线程,一个用于显示模态窗体,一个用于处理事务, 并同时更新第一个线程

vb.net 中MDI子窗体对其父窗体属性的获取与修改

兄弟前些日子做项目,第一次使用vb.net,碰上不少问题,相信很多初学者多多少少都会遇到这些问题,为了初学者学习方便,小弟总结了一些小经验,供大家参考讨论.第一篇:如何在MDI子窗体中控制父窗体的属性等等 功能:比如打开一个子窗体后,就要设置父窗体中的某个菜单项或者按钮为不可见状态,诸如此类. 内容:MDI父窗体和MDI子窗体类定义如下:MDI父窗体:Class MDIForm Inherits System.Windows.Forms.Form......... 'member mnuMain