C#自定义事件 范例:监视变量变化
很多时候我们需要程序具有一种功能,就是当满足某一条件时触发某个动作,使用C#的事件机制就可以达到这个目的下面的例子是一个很好的演示,这段代码实现了对一个变量的监视,一旦变量发生改变,就触发动作
定义事件类:
- class Event
- {
- public delegate void tempChange(object sender, EventArgs e);
- public event tempChange OntempChange;
- string temp;
- public string Temp
- {
- get
- {
- return temp;
- }
- set
- {
- if (temp != value)
- {
- OntempChange(this, new EventArgs());
- }
- temp = value;
- }
- }
- }
复制代码
分析:
要定义一个事件,首先声明事件和委托
具体格式如下:
声明委托
- public delegate void 事件句柄函数(object sender,EventArgs e);
复制代码
object用来传递事件的发生者,EventArgs用来传递事件的细节
下面定义一个此委托类型类型的事件
- public event 事件句柄函数 事件名;
复制代码
在这里,我定义了一个名为OntempChange的事件,并在属性访问器里设定当读取值与原值不同时触发该事件
使用事件(部分代码):
- public partial class Form1 : Form
- {
- Event ven = new Event();
- public Form1()
- {
- ven.OntempChange += new Event.tempChange(ven_OntempChange);
- InitializeComponent();
- }
- void ven_OntempChange(object sender, EventArgs e)
- {
- MessageBox.Show(ven.Temp);
- }
- private void button1_Click(object sender, EventArgs e)
- {
- ven.Temp = textBox1.Text;
- }
复制代码
在C#中,使用+=运算符将事件绑定给函数,在这里我把OntempChange事件绑定给了ven_OntempChange函数,在下面我定义了这个函数,在这个函数里设定了触发事件之后执行的相关操作(注意函数的参数)实际的运行效果就是,在文本框内输入字符,按下按钮后,如果你输入的值和上一次的不同,就会弹出对话框显示这个值~
C#自定义事件 范例:监视变量变化的更多相关文章
- C#实现自定义事件,用于监视变量变化
很多时候我们需要程序具有一种功能,就是当满足某一条件时触发某个动作,使用C#的事件机制就可以达到这个目的下面的例子是一个很好的演示. 这段代码实现了对一个变量的监视,一旦变量发生改变,就触发动作 定义 ...
- C#自定义事件监视变量变化
首先监视定义类 class Event { public delegate void tempChange(object sender, EventArgs e); public event temp ...
- jQuery封装自定义事件--valuechange(动态的监听input,textarea)之前值,之后值的变化
jQuery封装自定义事件--valuechange(动态的监听input,textarea)之前值,之后值的变化 js监听输入框值的即时变化 网上有很多关于 onpropertychange.oni ...
- mui开发app之自定义事件以更新其他页内容
我之前做过jquery mobile的开发,那还是前年的事情 在jquery mobile中,由于页面是存储在div[data-role=page]的dom中(jqmobile通过对data-role ...
- 微信小程序自定义事件
案例结构 首先,我还是会以案例的形式向大家讲解(这样也能方便大家更好的理解)简单介绍一下案例项目的内容(以上一章自定义组件的案例为基础)项目名称:component自定义子组件cpt父组件:logs ...
- React和Vue中,是如何监听变量变化的
React 中事件监听 本地调试React代码的方法 先将React代码下载到本地,进入项目文件夹后yarn build 利用create-react-app创建一个自己的项目 把react源码和自己 ...
- 如何实现swipe、tap、longTap等自定义事件
前言 移动端原生支持touchstart.touchmove.touchend等事件,但是在平常业务中我们经常需要使用swipe.tap.doubleTap.longTap等事件去实现想要的效果,对于 ...
- 跟着《beginning jquery》学写slider插件并借助自定义事件改进它
<beginning jquery>是一本很不错的学习jquery的书,作者的讲解深入浅出,很适合初学者,在最后一章里面,作者把前面所有的点结合起来完成了一个轮播图的jquery插件.实现 ...
- C#:委托和自定义事件
1. 委托概述 “委托”相当于C++中的“函数指针”,委托必须与所要“指向”的函数在“参数”和“返回类型”上保持一致; // 定义Person类 public class Person { publi ...
随机推荐
- javascript基础拾遗(十三)
1.jQuery的特点 jQuery是目前非常流行的javascript库,理念是"Write Less,Do More" 1)消除浏览器差异 2)简洁的操作DOM方法 3)轻松实 ...
- 碰撞器与触发器[Unity]
请看原帖,移步:Unity3d碰撞检测中碰撞器与触发器的区别 要产生碰撞必须为游戏对象添加刚体(Rigidbody)和碰撞器,刚体可以让物体在物理影响下运动.碰撞体是物理组件的一类,它要与刚体一起添加 ...
- pyspark实现自动提示以及代码高亮
pyspark实现自动提示以及代码高亮 起因 打开pyspark发现啥提示都没有,太不友好了啊,然后忍不住谷歌了一下,发现了这篇文章,内容如下: 1.pip install ptpython; 2.e ...
- FFmpeg filter简介
[时间:2016-08] [状态:Open] [关键词:FFmpeg, filter, filter graph,命令行] 1. 引言及示例 FFmpeg中的libavfilter提供了一整套的基于f ...
- 将String转换成InputStream
String str = "";//add your string contentInputStream inputStream = new ...
- OpenCV探索之路(十七):Mat和IplImage访问像素的方法总结
在opencv的编程中,遍历访问图像元素是经常遇到的操作,掌握其方法非常重要,无论是Mat类的像素访问,还是IplImage结构体的访问的方法,都必须扎实掌握,毕竟,图像处理本质上就是对像素的各种操作 ...
- My To Do List (Task Manager)
My To Do List (Task Manager) With everything that business owners deal with throughout their day, th ...
- iOS 统计Xcode整个工程的代码行数
小技巧5-iOS 统计Xcode整个工程的代码行数 1.打开终端 2.cd 空格 将工程的文件夹拖到终端上,回车,此时进入到工程的路径 此时已经进入到工程文件夹下 3.运行指令 a. find . - ...
- 变量使用self.foo还是_foo
selfOR_html, body {overflow-x: initial !important;}html { font-size: 14px; } body { margin: 0px; pad ...
- Unity2017与Visual Studio2017的兼容问题
Unity2017中新建脚本后,用Visual Studio2017打开发现不兼容. 方法一:管理员权限运行Unity. 方法二:打开Visual Studio Installer,下载Unity相关 ...