場景
C#中委托與事件的使用-以Winform中跨表單傳值為例:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100150700
參照上文在定義事件時傳遞引數為簡單的string,如果要傳遞比較復雜的引數,那么就可以使用物件將引數進行封裝,
博客主頁:
https://blog.csdn.net/badao_liumang_qizhi
關注公眾號
霸道的程式猿
獲取編程相關電子書、教程推送與免費下載,
實作
在表單A中定義委托與事件
public delegate void RefreshChartInOneDelegete(XYModel xYModel); public static event RefreshChartInOneDelegete OnRefreshChartInOne;
其中XYModel就是自己封裝的引數的Model,具體可以根據需要自己封裝,
public class XYModel { //存盤X軸屬性 private XAxisModel xAxisModel; //存盤Y軸屬性 private List<YAxisModel> yAxisModelList; public XAxisModel XAxisModel { get { return xAxisModel; } set { xAxisModel = value; } } public List<YAxisModel> YAxisModelList { get { return yAxisModelList; } set { yAxisModelList = value; } } }
定義觸發器
xYModel.YAxisModelList = yAxisModelList; if (OnRefreshChartInOne != null) { OnRefreshChartInOne(xYModel); }
然后在表單B中進行事件訂閱
FrmChartOptionInOneCurCom.OnRefreshChartInOne += new FrmChartOptionInOneCurCom.RefreshChartInOneDelegete(ChartCompareHelper_OnRefreshChart);
在表單B中撰寫具體的實作
private void ChartCompareHelper_OnRefreshChart(XYModel xYModel) { xYModelStore = xYModel; ChartCompareHelper.RefreshPaneComInOne(this.zedGraphControl1,xYModel.YAxisModelList); }
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/107292.html
標籤:C#
