场景

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

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

具体流程图示

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

  1. Winform中怎样跨窗体获取另一窗体的控件对象

    场景 Winform中实现跨窗体获取ZedGraph的ZedGraphControl控件对象: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/de ...

  2. 理解Windows窗体和WPF中的跨线程调用

    你曾开发过Windows窗体程序,可能会注意到有时事件处理程序将抛出InvalidOperationException异常,信息为" 跨线程调用非法:在非创建控件的线程上访问该控件" ...

  3. c#中如何跨线程调用windows窗体控件?

    我们在做winform应用的时候,大部分情况下都会碰到使用多线程控制界面上控件信息的问题.然而我们并不能用传统方法来做这个问题,下面我将详细的介绍. 首先来看传统方法: public partial ...

  4. Android中的跨进程调用技术AIDL

    什么是AIDL Android系统中的进程之间不能共享内存,因此,需要提供一些机制在不同进程之间进行数据通信. 为了使其他的应用程序也可以访问本应用程序提供的服务,Android系统采用了远程过程调用 ...

  5. Solana中的跨合约调用 及 Program Derived Addresses

    1. 引言 Solana runtime可通过cross-program invocation机制来支持合约间的相互调用. invoking合约A(Caller) 可触发调用 invoked合约B(C ...

  6. Winform中实现跨窗体获取ZedGraph的ZedGraphControl控件对象

    场景 Winforn中设置ZedGraph曲线图的属性.坐标轴属性.刻度属性: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...

  7. C# 委托实例(跨窗体操作控件)

    今天研究了一下,在C#里面却是可以不用自定义消息这么复杂的方法来实现跨窗体调用控件,C#有更好的办法就是委托. 效果描述:有两个窗体,FORM1(一个名为"打开form2"的but ...

  8. C#跨线程调用窗体控件的问题

    前段时间遇到跨线程调用窗体控件的问题,其实一句话System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;就可以解决,但 ...

  9. c语言程序中变量先引用声明,C语言如何跨文件调用函数定义中声明的变量

    变量的作用域 我们知道,变量根据其作用域有全局变量和局部变量之分.全局变量作用域是整个文件,并且可以使用关键字 extern 达到跨文件调用的目的.但是局部变量值作用于它当前所在的块(即该变量所处最内 ...

最新文章

  1. 自动化测试工具Cucumber的简单介绍
  2. c语言前置函数,C语言高级编程-函数前置与后置调用
  3. 邓总的vim配置,需要的自己拿走~
  4. CANOpen报文类型
  5. 技术公开课:SQL Server 高可用性解决方案概述(下)
  6. Jenkins部署java项目实例
  7. python画散点图分布-python中画散点图
  8. 人工智能NLP项目_深度学习和神经网络(1)
  9. 汽车驾驶 - 如何调整汽车后视镜
  10. python应用学习(三)——pyttsx3用四行代码让python说话!
  11. 猫哥教你写爬虫 014--pk小游戏
  12. C# System命名空间表
  13. 装饰工程预算方案的审查
  14. python函数的入参和传参
  15. @Autowired @Resources @Injected 三者的区别联系
  16. 【软件群英会】 12月1日晚上聊天记录
  17. 2021年第十二届蓝桥杯A组省赛
  18. 张俊林:当前炼制“大语言模型”的两个现象
  19. 免费svn服务器,百度云开发者教程
  20. Windows 环境JDK环境配置

热门文章

  1. 2020年终总结一下吧
  2. 4 命令_主梁建成、拾掇命令流(2019/4/10)
  3. zen3架构_全新Zen3架构,AMD发布最新Ryzen5000系列处理器
  4. java 0b,java 1.6.0_38-b05 vm 20.13-b02优化手记
  5. gitee markdown 笔记_使用Gitee作为Markdown的图床
  6. python sqlite3加密_sqlite3加密 - kjpioo的个人空间 - OSCHINA - 中文开源技术交流社区...
  7. walk-forward test
  8. 傅里叶变换的初级理解三
  9. excel修改列名_听说你还在手动合并Excel,看看这个吧!?
  10. linux内存地址断点,开发一个 Linux 调试器(三):寄存器和内存