C#事件的调用

C# 事件(Event)详解 定义委托类型:声明事件的委托类型。定义事件:使用event关键字声明事件。触发事件:通过委托触发事件。//声明委托类型//声明事件//触发事件的方法MyEvent?");//触发事件//事件处理方法//订阅事件//触发事件• 事件是基于委托的,提供了一个更严格的方式来管理方法的调用,尤其适用于需要通知和异步操作的场景。• 事件允许发布-订阅模式,使得多个对象能够订阅并响应特定的事件。 阅读详情

前言

说实话,这东西我在做这个东西之前只是单纯的用C#给出的事件,如Form_Load(),然后在事件中写方法,这玩意都是自己生成的,从没关心过这个事件是怎么调用的以及其背后的机制。

所以,现在先浅谈我对这个东西浅显的理解吧,欢迎各位大佬留言指正

我主要参考了这个链接点击打开链接

事件是什么

顾名思义,就是你想做的这件事发生前后与发生时所有的过程都可定义为事件,比如,我吃饭,就有开始吃饭,吃饭中,结束吃饭。。。。。。等等的事件

使用事件的相关知识

事件依赖的机制被称为发布-订阅机制,事件在一个类中声明且生成,且通过使用一个类或其他类中的委托与事件处理程序关联,包含事件的类用于发布事件

发布器(publisher):包含事件和委托定义的对象,事件和委托之间的联系也定义在这个对象之中,发布器调用这个事件并且通知其他对象

订阅器(subscribe):一个接受事件并且提供事件处理的对象,在发布器类中委托调用订阅器类中的方法

如何使用事件

(1)声明事件之前必须先声明该事件的委托类型

public delegate void BoilerHandler(string state)  //定义一个名为BolierHandler的委托

(2)声明事件本身

public event BoilerHandler Log;//定义一个基于BoilerHandler的事件Log

(3)发布器调用订阅器

publisher e = new publisher();

subscribe v = new subscribe ();

e.Log += new publisher.BoilerHandler(订阅器。方法);

这样做才能知道,e的Log是想干嘛,因为BoilerHandler中的事件可能很多,同时也将讲订阅器中的方法指向e的Log事件,这样就可以达到多对多的订阅。





C# 窗体之间的控件调用 窗体之间的空间调用事件 子窗体和主窗体空间相互调用 立即下载

相关推荐

【杰理AC696X】ADKEY复用指示灯不定时出现灯不亮或按键失灵的问题

测试SDK版本:《ac696n_soundbox_sdk_v1.5.0-20211217》ADKEY复用指示灯的做法多用于蓝牙小音箱,IC引脚越来越少,复用也就用的越多了,不过,在使用前应评估好功能,因为复用的做法,肯定会牺牲点东西的,如果体验感啥的。 比如这个图,(V-)按键按下时,LED是会一直导通发光的,按不同阻值的按键还有亮度不一致的问题,这样的问题有的客户是不接受的,这就要另寻他法了。某天调好案子,放在一边测试时,发现指示灯不亮了,按键也不起作用,想起之前AC692系列也有类似的问题,很快就定位到

xx842678的博客 1654

C#-事件的详细用法

C#-事件的详细用法

qq_52905520的博客 3475

主流算力卡性能对比分析

超大规模AI训练/HPC:优先选择NVIDIA H100或AMD MI300X,需关注显存带宽和多卡互联能力。企业级AI训练:NVIDIA A100性价比更高,生态成熟。国内自主可控需求:华为昇腾910B是首选,支持液冷和低功耗设计。本地AI推理/游戏:NVIDIA RTX 4090或RTX 5090性价比突出,但需注意显存容量限制。边缘计算/低功耗场景:华为昇腾310或清微智能TX536(能效比6.3TOPS/W@INT8)更合适。

m0_69867914的博客 7796

c#调用事件

qq_41402448的博客 314

电源完整性必看!用SIwave提取PDN阻抗曲线的3个关键设置与常见报错解决

本文深入探讨了在SIwave中进行电源完整性(PI)仿真时,提取PDN阻抗曲线的三个核心设置要点。重点解析了端口阻抗设为0.1欧姆的物理意义与SYZ参数仿真中的阻抗匹配原则,并提供了针对常见收敛性问题和模型误差的实战排查思路,旨在帮助工程师获得更精确可靠的仿真结果,为去耦电容优化提供依据。

b9c0d的博客 352

【数据集处理】中国地面气候资料日值数据集(V3.0)(含MATLAB全代码)

简介数据集数据处理

WW、forever的博客 1万+

C# 调用一个按钮的Click事件

最基本的调用方法 (1)button1.PerformClick(); (2)button1_Click(null,null); (3)button_Click(null,new EventArgs());   利用反射调用 最开始的调用方法 //建立一个函数 private void callOnClick(Button btn) { /

bruce135lee的专栏 3万+

调用魔搭API出现Please bind your Alibaba Cloud account before use的解决方案

本文主要介绍了调用魔搭API出现Please bind your Alibaba Cloud account before use解决方案,希望能对使用大模型的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 3万+

c#调用按钮点击事件

关于c#窗体程序的按钮点击事件,经过这几天的查询资料,现在总结如下: 1、在一个按钮事件中调用另一个按钮(button1)的点击事件,可以直接如下:     button1.PerformClick()   也称之为 以编程方式调用按钮的click事件 2、在加载事件里调用button1.click(null, null); 也相当于触发了事件 这里的加载事件,指的是窗体中各个控件按钮

u011423435的专栏 2万+

Vue+OpenLayers7入门到实战目录,OpenLayers7中文文档,OpenLayers7中文手册,OpenLayers7中文教程,OpenLayers7文档pdf

本篇作为《Vue+OpenLayers7入门到实战》所有文章的二合一汇总目录,方便查找。本专栏源码是由OpenLayers7.x版本结合Vue框架编写。本专栏从Vue搭建脚手架到如何引入OpenLayers7依赖的每一步详细新手教程,再到通过各种入门案例和综合性的实战案例,带领大家快速上手Vue+OpenLayers7开发。

GIS技术方向,GIS地图技术分享(GIS入门、Openlayers教程、Leaflet教程),做最好的GIS地图开发教程。关注博主公众号:eguid 3971

13、超声断层乳腺图像融合算法:乳腺癌诊断新突破

本文介绍了一种新型超声断层乳腺图像融合算法,通过结合超声透射(UTTc、UTTα)和反射断层图像(URT),实现对乳腺组织的多参数自动可视化。该算法能有效区分良性与恶性肿瘤,具有高准确性、无辐射、低成本等优势,适用于大规模乳腺癌早期筛查。初步临床测试验证了其可行性,未来有望成为乳腺癌诊断的新标准。

9q8w7e6r5的博客 154

C#中事件的动态调用

今天遇到一个问题,就是希望能够动态调用事件。传统的思路是,通过Reflection.EventInfo获得事件的信息,然后使用GetRaiseMethod方法获得事件被触发后调用的方法,再使用MethodInfo.Invoke来调用以实现事件的动态调用。 很不幸,Reflection.EventInfo.GetRaiseMethod方法始终返回null。这是因为,C#编...

DreamWeaver2015的博客 233

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

C# 反射调用私有事件

在 C# 反射调用私有事件经常会不知道如何写,本文告诉大家如何调用

lindexi 2689

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

C# 调用load事件

在一个函数或者事件中调用另外的事件,例如调用Load事件 private void EventForm_Load(object sender, EventArgs e) { //相关内容 } private void textBox1_KeyDown(object sender, KeyEventArgs e) { EventForm_Loa...

weixin_30249203的博客 1233

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

C#中调用控件的事件

常常需要在button1的事件中调用另button2的事件,我们可以通过直接调用button2的方法,如下: privatevoidbutton2_Click(objectsender,System.EventArgse){MessageBox.Show("messagefrombutton2","message");}privatevoidbutt...

weixin_30527551的博客 534

c#在函数内调用按钮事件方法

c#在函数内调用 按钮事件方法 MenuHelpSize_Click(null,null); 就是将 sender e 替换为 null 特此记录 by: anlog 2021年4月9日 15点02分

anlog的专栏 2492

C# 异步事件调用委托

如何实现异步事件调用呢?事件其实是一种MulticastDelegate(多播委托)。而MulticastDelegate类提供了一个GetInvocationList方法,该方法返回此多播委托的委托调用数组。利用该方法就能实现我们的异步事件调用功能。 using System; using System.Threading; using System.Runtime.Remoting...

Peter的博客 5829

C# 调用一个按钮的Click事件(利用反射)

最基本的调用方法 (1)button1.PerformClick();(2)button1_Click(null,null);(3)button_Click(null,newEventArgs()); 利用反射调用 最开始的调用方法 //建立一个函数 private void callOnClick(Button btn) { //建立一个类型 ...

weixin_34400525的博客 612

C# 如何调用一个控件的事件

写代码时,我们经常会调用其他控件的事件,其实有很多种方法: 1. 把事件写在同一个函数里面; 2. this.btnTiming.Click+=newSystem.EventHandler(this.btnTest_Click); 3. private void btnTest_Click(object sender, EventArgs e) { MessageBox.Show("Shadow"); ...

War 4877

C#如何定义一个事件,实现事件的调用

C#如何定义一个事件,实现事件的调用 using System; namespace ConsoleApplication7 { class Program { static void Main(string[] args) { people p = new people("Name1"); p.PropertyChanged +=

lllljz的专栏 8177

c# 开发ActiveX控件,添加事件,QT调用事件

c#开发ActiveX的过程参考我的另一篇文章 :https://www.cnblogs.com/baqifanye/p/10414004.html 本篇讲如何在C#开发的ActiveX过程中添加事件,并在QT中调用 1.添加一个新的名为ControlEvents的接口文件,也可以不添加,,直接添加到主文件中也可,,等下会说明 ControlEvents.cs...

weixin_30367873的博客 327
上一篇: c#中类与方法修饰符的区别
下一篇: c#字段封装get set的详解
反斜杠青年
博客等级 码龄11年 29粉丝 73原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值