winform 窗体加载的问题,C#里不同Panel中窗体的调用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了winform 窗体加载的问题,C#里不同Panel中窗体的调用相关的知识,希望对你有一定的参考价值。
窗体不能既是 MDI 子级,又是 MDI 父级
如图,有3个窗体form1在panel1中,form2在panel2中,form3 在panel3中 (在panel2右边),其中form1的按钮控制 form2和form3的加载 ,form2中的按钮控制form3的加载
代码(form1 中):
form2 frmSchedule = new form2();
frmSchedule.MdiParent = this;
panel2.Controls.Clear();
panel2.Controls.Add(frmSchedule);
frmSchedule.Dock = DockStyle.Fill;
frmSchedule.Show(); 没什么问题 ,但到了 form2 中就有出题了
form3 frmSchedule = newform3();
frmSchedule.MdiParent = this;
panel1.Controls.Clear();
panel1.Controls.Add(frmSchedule);
frmSchedule.Dock = DockStyle.Fill;
frmSchedule.Show();
怎么都出错,不是报MDI 容器窗体必须位于顶层就是报窗体不能既是 MDI 子级,又是 MDI 父级 的错误 , 都是换成独立的 panel,在form2中又找不到主窗体(就是父窗体中的panel 这个控件),折腾了1晚上实在搞不定啊,望哪位能帮帮小弟啊
你添加form2为form1的子窗体时 后面架子啊form3的代码还未执行 所以不会报错
再加载form3时候 form2已经是某个窗体(form1)的子窗体了 因此form2就不能是mdi父容器了 所以就报错了
你要做成什么效果说出来 也许是你的实现思路有问题 一般情况不会再子窗体中再添加子窗体的追问
我做了调整了,panel2和panel3同属主窗体了,现在是panel2中的按钮如何控制panel3中窗体的变化了
追答同form1按钮控制form2相同呀 真心不知道你要干嘛~~~~~也不好给你具体的意见
参考技术B 看了半天,不知道楼主你的需求是什么?以上是关于winform 窗体加载的问题,C#里不同Panel中窗体的调用的主要内容,如果未能解决你的问题,请参考以下文章
在C#的winform中,如何快速加载窗体,避免控件的背景图片闪烁?
C#winform怎样等所有控件加载完再显示窗体?C#透明窗体显示时闪现黑块怎么解决?