很多时候我们需要程序具有一种功能,就是当满足某一条件时触发某个动作,使用C#的事件机制就可以达到这个目的下面的例子是一个很好的演示,这段代码实现了对一个变量的监视,一旦变量发生改变,就触发动作

定义事件类:

  1. class Event
  2. {
  3. public delegate void tempChange(object sender, EventArgs e);
  4. public event tempChange OntempChange;
  5. string temp;
  6. public string Temp
  7. {
  8. get
  9. {
  10. return temp;
  11. }
  12. set
  13. {
  14. if (temp != value)
  15. {
  16. OntempChange(this, new EventArgs());
  17. }
  18. temp = value;
  19. }
  20. }
  21. }

复制代码

分析:
要定义一个事件,首先声明事件和委托

具体格式如下:
声明委托

  1. public delegate void 事件句柄函数(object sender,EventArgs e);

复制代码

object用来传递事件的发生者,EventArgs用来传递事件的细节

下面定义一个此委托类型类型的事件

  1. public event 事件句柄函数 事件名;

复制代码

在这里,我定义了一个名为OntempChange的事件,并在属性访问器里设定当读取值与原值不同时触发该事件

使用事件(部分代码):

  1. public partial class Form1 : Form
  2. {
  3. Event ven = new Event();
  4. public Form1()
  5. {
  6. ven.OntempChange += new Event.tempChange(ven_OntempChange);
  7. InitializeComponent();
  8. }
  9. void ven_OntempChange(object sender, EventArgs e)
  10. {
  11. MessageBox.Show(ven.Temp);
  12. }
  13. private void button1_Click(object sender, EventArgs e)
  14. {
  15. ven.Temp = textBox1.Text;
  16. }

复制代码

在C#中,使用+=运算符将事件绑定给函数,在这里我把OntempChange事件绑定给了ven_OntempChange函数,在下面我定义了这个函数,在这个函数里设定了触发事件之后执行的相关操作(注意函数的参数)实际的运行效果就是,在文本框内输入字符,按下按钮后,如果你输入的值和上一次的不同,就会弹出对话框显示这个值~

C#自定义事件 范例:监视变量变化的更多相关文章

  1. C#实现自定义事件,用于监视变量变化

    很多时候我们需要程序具有一种功能,就是当满足某一条件时触发某个动作,使用C#的事件机制就可以达到这个目的下面的例子是一个很好的演示. 这段代码实现了对一个变量的监视,一旦变量发生改变,就触发动作 定义 ...

  2. C#自定义事件监视变量变化

    首先监视定义类 class Event { public delegate void tempChange(object sender, EventArgs e); public event temp ...

  3. jQuery封装自定义事件--valuechange(动态的监听input,textarea)之前值,之后值的变化

    jQuery封装自定义事件--valuechange(动态的监听input,textarea)之前值,之后值的变化 js监听输入框值的即时变化 网上有很多关于 onpropertychange.oni ...

  4. mui开发app之自定义事件以更新其他页内容

    我之前做过jquery mobile的开发,那还是前年的事情 在jquery mobile中,由于页面是存储在div[data-role=page]的dom中(jqmobile通过对data-role ...

  5. 微信小程序自定义事件

    案例结构 首先,我还是会以案例的形式向大家讲解(这样也能方便大家更好的理解)简单介绍一下案例项目的内容(以上一章自定义组件的案例为基础)项目名称:component自定义子组件cpt父组件:logs ...

  6. React和Vue中,是如何监听变量变化的

    React 中事件监听 本地调试React代码的方法 先将React代码下载到本地,进入项目文件夹后yarn build 利用create-react-app创建一个自己的项目 把react源码和自己 ...

  7. 如何实现swipe、tap、longTap等自定义事件

    前言 移动端原生支持touchstart.touchmove.touchend等事件,但是在平常业务中我们经常需要使用swipe.tap.doubleTap.longTap等事件去实现想要的效果,对于 ...

  8. 跟着《beginning jquery》学写slider插件并借助自定义事件改进它

    <beginning jquery>是一本很不错的学习jquery的书,作者的讲解深入浅出,很适合初学者,在最后一章里面,作者把前面所有的点结合起来完成了一个轮播图的jquery插件.实现 ...

  9. C#:委托和自定义事件

    1. 委托概述 “委托”相当于C++中的“函数指针”,委托必须与所要“指向”的函数在“参数”和“返回类型”上保持一致; // 定义Person类 public class Person { publi ...

随机推荐

  1. [Windows Azure] Managing SQL Database using SQL Server Management Studio

    Managing Windows Azure SQL Database using SQL Server Management Studio You can use Windows Azure SQL ...

  2. (原创)结构体自动化转为char数组的实现

    结构体自动化转换为char数组这个需求,来自于一个最近开发的一个项目,在项目开发过程中遇到一个小问题,需要将各种结构体拷贝到char数组中,这对于一个简单的结构体来说是很简单的事情,比如下面这个只有整 ...

  3. 【线程】linux之thread错误解决方案

      1.错误现象:   undefined reference to 'pthread_create' undefined reference to 'pthread_join' 2.问题原因: pt ...

  4. 安装pydiction

    pydiction用来实现代码补全和语法提示功能.pydiction不能通过apt安装,需要自行下载安装. 在GitHub下载源码,可以使用Git迁出到本地,或者下载zip包自行解压,地址为:http ...

  5. wcout输出中文不显示

    准备使用UNICODE来写个控制台测试程序发现,cout无法输出UNICODE的中文字符.查找c++标准看到,其提供了wcin.wcout.wcerr.wclog用于处理wchar_t字符的输入输出. ...

  6. Python基本语法_强制数据类型转换

    目录 目录 前言 软件环境 Python数据类型的显式转换 显式转换的多种类型 Non-String转换为String str函数 repr str和repr的区别 eval Non-int转换为in ...

  7. 软链接ln -s以及如何解决其产生“Too many levels of symbolic links ”的错误?

    Q1:如何利用ln -s来创建快捷方式? A1:ln(link,链接文件): Windows中的快捷方式,实际上快捷方式和它指向的文件是独立的两个文件,两个都占硬盘空间,只不过用户访问快捷方式时,其效 ...

  8. Ubuntu 14.04快速搭建SVN服务器及日常使用

    1.介绍  Subversion是一个自由,开源的版本控制系统,这个版本库就像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的修改情况.这样就可以很方面恢复到以前的版本,并可以查看数据更改 ...

  9. 我为什么要学Go语言

    # 我为什么要学Go语言 ### 公司的强烈推荐---之前也了解过Go语言并没有觉得有什么了不起,Go能做的其他语言都能做. ### 网上查找学习Go语言的理由---网上大体有两类人,一类说Go是大公 ...

  10. BAT-删除文件夹

     相关资料:https://www.cnblogs.com/EasonJim/p/6087636.html 可以删除空的文件夹,但是文件夹中有文件,无法删除. @echo off rd "C ...