標籤:利用 eve event 不用 實現 sele 參數 list cte
使用者控制項主表單結構:左側樹形菜單,右側Panl;
根據點擊的菜單節點,panl裡面選擇性載入某一個子表單使用者控制項,並傳值給子表單;
反之,在子表單進行相應的操作之後,傳值給主表單,觸發主表單的重新整理。
首先,主表單傳值給子表單,只需建立一個子表單的對象,用對象去訪問子表單的公開屬性及方法,可以在子表單中定義一個參數變數,在主表單調用時直接傳值給子表單。
其次,在子表單觸發事件,需要主表單同步重新整理時,就需要利用委託來傳遞值。
下面是用委託的具體方法:
在子表單中定義一個委託:
public delegate void SelectEvent1(string Date, string eleId);
public SelectEvent1 AfterSelectEvent1;//這裡可以用event關鍵字修飾,也可以不用,區別是:在調用時,event事件必須用+=去賦值,不用event,則直接用=即可
在主表單中定義一個與此委託一致的方法://參數類型,個數相同
private void Uc_AfterSelectEvent1(string Date, string EleId)
{
DATE = Date;
ELEID = EleId;
GetTreeListData(DATE);//重新整理樹形菜單的方法
}
在主表單調用子表單時,將此方法賦值給子表單的委託:
uc.AfterSelectEvent1 = Uc_AfterSelectEvent1;//uc是子表單的對象
在子表單中,需要觸發主表單同步重新整理的事件中添加自訂委託:(傳值)
AfterSelectEvent1(date_DATE.Text, txt_eleId.Text);
結束,這樣就完成了利用委託將子表單的值傳給主表單。
C#中,使用者控制項UserControl裡面用Panl載入UserControl,並實現利用委託互相傳值