VS.NET所谓的窗体是一个固定的桌面形式,单对于Winform来说可以作为forms,也可以作为userControl,完全可以把窗体作为一个userControl,实际上就是一样的东西,在里面画子窗体控件。
在主窗体就可以用panel作为容器去增加、删除、隐藏显示,代码很简单,过程千万不能想复杂了,不然强行使用反射的方法,把窗体硬生生嵌套在panel里,那就会触发重绘背景动作,引起整个桌面程序的闪烁,双缓冲也缓解不了这个问题,因为双缓冲是缓冲form容器自身。
所以,最简单使用的办法还是把子窗体做成自定义控件,就再也不要show了,不需要显示的你可以隐藏掉,显示隐藏就是切换动作,弹出窗口也可以交互自定义控件数据,并无影像任何效果,这是Control和容器的本意。
首先将要作为控件的窗体的 TOPLEVEL属性设置为False
f1.TopLevel = false;
然后像添加普通控件一样加入到panel的controls里面就好
panel.Controls.Add(f1);
没这功能啊
你用MDI窗体或TabControl控件多好啊。