最近开始了一个winform项目,原先一直都是web项目。遇到个问题,就是在框架内,左侧和中间的main都是用panel来实现的form,就是把form窗体打开到panel里,实现左侧是导航,中间是操做区域的效果。中间区域要想控制左侧导航或者顶部导航都是困难的,由于这时没有激活左侧窗体,操做顶部相对容易,由于顶部是父窗体,子窗体操做父窗体的例子不少,百度一下。我以前也写过一篇:winform打开子窗体后,在子窗体中刷新父窗体,或者关闭子窗体刷新父窗体。html
一样是子窗体相互操做起来挺困难,能够经过设置一个static静态变量,在加载某一窗体前把form做为object赋值给这个变量,在须要操做的地方调用。web
具体以下:框架
我项目中有个公共类叫cSysspa
定义static变量:public static object currentLeftMainForm = null; orm
左侧的窗体是leftInItem,打开到了左侧的panel里,在打开时加入下面的代码:cSys.currentLeftMainForm = objleft;htm
objleft是leftInItem定义的,如:leftInItem objleft = new leftInItem();ci
这时currentLeftMainForm 就一直是激活状态,在须要操做左侧的时候就能够直接调用了,get
如:leftInItem cleft = (leftInItem)cSys.currentLeftMainForm;it
相应的操做示例:cleft.setCurrentButton("btnInItemList");form
setCurrentButton是在leftInItem中定义的方法。
这样就轻松实现了同级窗体的互操做。
原帖地址:winform里操做打开在panel里的form窗体,子窗体操做同级子窗体或者父窗体的方法
bubuko.com提供,禁止转载。