首页 新闻 搜索 专区 学院

一个关于子窗体的问题

0
[已解决问题] 解决于 2008-10-21 10:28
Code

 

这段代码是关于验证子窗体是否已经在父窗体中打开了:首先对父窗体中已经打开的子窗体进行循环对比,如果没有打开的话就打开一个新的,如果已经打开了的话就将其放置到所有窗体的最前端。

但是现在的问题是无法将窗体提前到最前端,form.Activate();这个方法无法将窗体放置到最前端,我还试了form.BringToFront();这个方法,依然不行。

所以请大家指点一下,谢谢!

问题补充: TopMost = true 刚试过了,也不行啊。
握薪尝蛋的主页 握薪尝蛋 | 初学一级 | 园豆:145
提问于:2008-10-17 20:33
< >
分享
最佳答案
0

现在告诉你原因,如下我用你的代码做的,第一次点击button因为没有“fr2”,他执行了else里面的else代码,将传进来的form设置为子窗体,并显示,这个没错。但第二次点击button的时候因为有了fr2所以他执行else里面的if的代码,就是想让他获得焦点,但为什么没获得呢???因为你是让传进来的form获得焦点,注意传进来的form是新创建的,并不是MdiChildren里面的任何一个,他们并不是同一个对象,你让他获得焦点并不是让MDI里面的窗体获得焦点,甚至你还没show一下它,自然就没有任何效果。

你的代码如下:

 

Code

 

当然if(j>0)里面的代码改成如下就可以了,不过效率并不高:

Code

 

 

 

现在把你的代码改成如下,你再看看:

 

Code

 

 

howard-Wang | 菜鸟二级 |园豆:415 | 2008-10-19 17:08
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册