问题描述
请教各位大侠:我在.NET中写了一个程序,主界面frmMain用菜单窗体形式,其中从菜单menuMain中选择可以将Form1窗体显示在主界面的菜单框架下,另外从其他菜单选择可打开若干独立窗体Form2等。但是问题在于:(1)先点menuMain打开Form1,然后再打开Form2或者(2)先打开Form2,再点menuMain打开Form1不论以上两种执行顺序的哪一种情况下,用鼠标点击Form1的任一个地方,让Form1获得焦点,但是Form1始终处于Form2的后面,导致Form1的很多部分被Form2掩盖掉。我看了一下,frmMain,Form1,Form2的.SetTopMost属性=False,这就很让人疑惑。有哪位高手,可否给与指点迷津:如何让鼠标点到哪个窗体,就让该窗体显示在最前面,而不被其他窗体掩盖掉?
解决方案
解决方案二:
frm.BringToFront();
解决方案三:
在Form1_Focus()中写该语句吗?还需要设置.NET窗体中的什么属性吗?CauseInvalidate做什么用的?还有一个属性,好像有Inherit,Disable,EnablePreventFocusChange,EnableAllowFocusChange四个值可选,做什么用的?
解决方案四:
感觉好像你两个窗口Show出来的方式不同,以及Owner属性不同。
解决方案五:
楼上说Owner属性,在哪里设置?menuMain是mdiForm形式的,Form1确实是其子窗体;而Form2是独立窗体。不过Form1,Form2都是用Form.Show()方法显示啊;
解决方案六:
把你的form1和form2的FormborderStyle设成FixedDialog试试
时间: 2024-07-30 09:52:33