博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#自定义事件 范例:监视变量变化
阅读量:6037 次
发布时间:2019-06-20

本文共 1102 字,大约阅读时间需要 3 分钟。

很多时候我们需要程序具有一种功能,就是当满足某一条件时触发某个动作,使用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函数,在下面我定义了这个函数,在这个函数里设定了触发事件之后执行的相关操作(注意函数的参数)实际的运行效果就是,在文本框内输入字符,按下按钮后,如果你输入的值和上一次的不同,就会弹出对话框显示这个值~

转载地址:http://wjohx.baihongyu.com/

你可能感兴趣的文章
存储过程中拼接的变量和点的问题
查看>>
ASP.NET那点不为人知的事(一)
查看>>
HTML 表格
查看>>
VMware 虚拟化编程(7) — VixDiskLib 虚拟磁盘库详解之三
查看>>
php 未实例化类调用方法的问题
查看>>
我对读计算机软件专业硕士的几点看法
查看>>
用JS写CSS
查看>>
TOJ4537: n阶行列式
查看>>
3.16
查看>>
表单文件上传与文件下载
查看>>
下午考
查看>>
创建字符设备的三种方法
查看>>
走在网页游戏开发的路上(六)
查看>>
nginx 配置的server_name参数(转)
查看>>
Uva592 Island of Logic
查看>>
C++基础代码--20余种数据结构和算法的实现
查看>>
footer固定在页面底部的实现方法总结
查看>>
nginx上传文件大小
查看>>
数字通信原理笔记(一)---概述
查看>>
HDU 2243 考研路茫茫——单词情结(自动机)
查看>>