在主窗体就可以用panel作为容器去增加、删除、隐藏显示,代码很简单,过程千万不能想复杂了,不然强行使用反射的方法,把窗体硬生生嵌套在panel里,那就会触发重绘背景动作,引起整个桌面程序的闪烁,双缓冲也缓解不了这个问题,因为双缓冲是缓冲form容器自身。
所以,最简单使用的办法还是把子窗体做成自定义控件,就再也不要show了,不需要显示的你可以隐藏掉,显示隐藏就是切换动作,d出窗口也可以交互自定义控件数据,并无影像任何效果,这是Control和容器的本意。
你是怎么在panel加载子窗体的?是把子窗体的控件全部复制到panel里来么?这样当然是不会触发关于窗体的事件的,除非你是用Show()或ShowDialog()才会触发,如果真的要触发的话,请把定义leave和closing事件改为public然后在主窗体里调用它。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)