主窗体设置MDI模式后(this.IsMdiContainer = true)子窗体显示不出来,怎么搞?详细情况如下:winform 项目 有一个主窗体,很多子窗体一开始我并没有设置主窗体为MDI模式
然后程序完成后 能正常运行,显示方式和功能都正常,
现在主窗体直接设置成MDI模式(this.IsMdiContainer = true),
并且在子窗体显示的时候直接设置子窗体的MDIParent为主窗体,
但是现在子窗体反而显示不出来了。怎么搞?我感觉子窗体是显示了 只是看不到,下面代码可以测试
WinFormDepotUI.Form1 frm = new WinFormDepotUI.Form1();
frm.MdiParent=this;-------在开始的子窗体显示的代码处插入
frm.Show();
-----------这个完全看不到子窗体WinFormDepotUI.Form1 frm = new WinFormDepotUI.Form1();
frm.Show();
frm.MdiParent=this;-------在开始的子窗体显示的代码处插入
-----------这个看到子窗体突然显示但接着马上又消失
子窗体并不是所有都是直接从主窗体弹出的,也有许多子窗体是从其他子窗体弹出的。
比如
main->child1
main->child2
````````````child2->child4
````````````child2->child5
`````````````````````````child4->child6
main->child3
````````````child3->child7
然后程序完成后 能正常运行,显示方式和功能都正常,
现在主窗体直接设置成MDI模式(this.IsMdiContainer = true),
并且在子窗体显示的时候直接设置子窗体的MDIParent为主窗体,
但是现在子窗体反而显示不出来了。怎么搞?我感觉子窗体是显示了 只是看不到,下面代码可以测试
WinFormDepotUI.Form1 frm = new WinFormDepotUI.Form1();
frm.MdiParent=this;-------在开始的子窗体显示的代码处插入
frm.Show();
-----------这个完全看不到子窗体WinFormDepotUI.Form1 frm = new WinFormDepotUI.Form1();
frm.Show();
frm.MdiParent=this;-------在开始的子窗体显示的代码处插入
-----------这个看到子窗体突然显示但接着马上又消失
子窗体并不是所有都是直接从主窗体弹出的,也有许多子窗体是从其他子窗体弹出的。
比如
main->child1
main->child2
````````````child2->child4
````````````child2->child5
`````````````````````````child4->child6
main->child3
````````````child3->child7
解决方案 »
- 有关SqlDataAdapter.Update 访求使用
- C#如何根据参数的不同,引用不同的类
- winform启动时怎样先显示窗体,然后再加载窗体中表格的内容?
- c# winform突然无法用键盘输入到文字框了.其他都正常
- 请教:如何把一个字节数组转成字符串,再从字符串转成字节数组?
- 窗体程序执行一次,不能接着重复执行,必须关掉,重新打开才能正确执行,为什么?
- 关于Socket简单问题
- 请问这效果是用的那个controls??是ListView还是什么呢?
- WPF,Blend用笔画路径
- 工程无法针对目标平台anycpu生成
- 我擦,multiple="multiple"怎么不能选择多个?
- 请教关于windows服务启动程序时不显示窗体的超级难题
写哪里了?
frm.MdiParent=this;-------在开始的子窗体显示的代码处插入子窗体都显示了,在设置MdiParent怀疑不行吧
这个我是项目完成后直接在主窗体中的属性IsMdiContainer中设置的
{
Form2 from = new Form2();
from.MdiParent = this;
from.Show();
}
这样写完全没有问题的;
WinFormDepotUI.Form1 frm = new WinFormDepotUI.Form1();
//WinFormDepotUI这是个啥,是不是跟它有关系?
WinFormDepotUI 这个是命名空间
Form1 是窗体主要是我的主窗体上放了很多控件在上面,比如panel 然后设置了panel的dock为fill,这样子窗体显示出来,但是看不到了。好像显示在panel的后面了。
现在的问题是如何让它显示在最前面。
from.MdiParent = this;
from.Show();就OK了..命名空间不要带着
Form2 from = new Form2();
from.MdiParent = this;
from.Show();
//在这个后面加上一句代码:
this.panel1.Controls.Add(f2);//panel1为panel的name