winform裏操做打開在panel裏的form窗體,子窗體操做同級子窗體或者父窗體的方法

最近開始了一個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提供,禁止轉載。

相關文章
相關標籤/搜索