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

 

此方法會執行具體的操作,具體操作是調用工具類中的刷新方法。

具體流程圖示

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM