C#中在定义事件委托时怎样跨窗体传递参数
生活随笔
收集整理的這篇文章主要介紹了
C#中在定义事件委托时怎样跨窗体传递参数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
場景
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);}?
總結
以上是生活随笔為你收集整理的C#中在定义事件委托时怎样跨窗体传递参数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Nginx实现负载均衡时常用的分配服务器
- 下一篇: Winform中设置ZedGraph的X