• C#中怎样跨窗体调用事件-从事件订阅实例入手


    场景

    C#中委托与事件的使用-以Winform中跨窗体传值为例:

    https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100150700

    参考上面的博客。

    需求是在图形选项窗体中刷新主窗体的图。

    注:

    博客主页:
    https://blog.csdn.net/badao_liumang_qizhi
    关注公众号
    霸道的程序猿
    获取编程相关电子书、教程推送与免费下载。

    实现

    首先是图形选项窗体,即发起方。

    先要声明刷新事件(此事件声明在图形选项工具类DataChartHelper中):

    public static event EventHandler OnRefreshChart;

    然后图形选项窗体的保存按钮事件中要调用刷新事件时需要触发:

    if (this.Confirm("保存成功") == DialogResult.OK)
                    {
                        Common.DataChart.DataChartHelper.TriggerRefreshChart();     //触发图形刷新事件
                        this.Dispose();
                    }

    此时会触发在图形选项工具类中的TriggerRefreshChart(),回到工具类中:

     public static void TriggerRefreshChart()
            {
                if (OnRefreshChart != null)
                {
                    OnRefreshChart(null, System.EventArgs.Empty);
                }
            }

    此时需要在主页面进行图的刷新。在主页面窗体的窗体加载事件中进行事件订阅:

    Common.DataChart.DataChartHelper.OnRefreshChart -= DataChartHelper_OnRefreshChart;
    Common.DataChart.DataChartHelper.OnRefreshChart += DataChartHelper_OnRefreshChart;

    此时就会执行当前主页面的方法DataChartHelper_OnRefreshChart:

    private void DataChartHelper_OnRefreshChart(object sender, EventArgs e)
            {
                DataChartHelper.RefreshPane(this.zedGraphControl1);
            }

    此方法会执行具体的操作,具体操作是调用工具类中的刷新方法。

    具体流程图示

     

  • 相关阅读:
    linux基本命令
    Charles抓包
    html5基础知识
    java流程控制
    Harry Potter and the sorcerer's stone-01 the Boy Who Lived
    java基础知识
    Java程序运行机制
    java基础相关(历史,特性,环境变量)
    markdown基本语法
    Dos相关知识
  • 原文地址:https://www.cnblogs.com/badaoliumangqizhi/p/11676655.html
Copyright © 2020-2023  润新知