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);
        }

 

相关文章:

  • 2021-06-01
  • 2021-05-30
  • 2021-06-16
  • 2022-12-23
  • 2021-07-20
  • 2021-08-22
  • 2021-09-21
  • 2021-08-18
猜你喜欢
  • 2022-12-23
  • 2022-01-14
  • 2022-12-23
  • 2022-12-23
  • 2021-06-29
相关资源
相似解决方案