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 ...
随机推荐
- 每日英语:The Benefits of a Sleep Buddy
Stolen sheets, snoring and hot flashes are just some of the annoyances that lead a quarter of U.S. c ...
- canvas的图片绘制案例
<!doctype html><html lang="en"><head> <meta charset="UTF-8" ...
- Android.mk用法整理
[时间:2016-05] [状态:Open] 输出消息 由于Android.mk使用的GNU Make的语法,可以方便的使用.ndk提供了一下三种格式的消息输出: error: debug print ...
- Android之Activity切换
●假如有Activity01和Activity02,从Activity01切换到Activity02并传递参数. Activity01中: button.setOnClickListener(new ...
- PHP中的WebService
Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的.专门的第三方软件或硬件, 就可相互交换数据或集成.依据Web Service规范实施的应用之间, 无论它们所使用的语言. ...
- postgresql 修改字段名称
ALTER TABLE auth_user RENAME email TO aemail;
- C#学习笔记(17)——C#中接口的作用
说明(2017-7-17 23:50:48): 原文: 接口的作用 接口的作用(C#)(另一篇) C#接口是一个让很多初学C#者容易迷糊的东西,用起来好像很简单,定义接口,里面包含方法,但没有方法具体 ...
- 1. DNN神经网络的前向传播(FeedForward)
1. DNN神经网络的前向传播(FeedForward) 2. DNN神经网络的反向更新(BP) 3. DNN神经网络的正则化 1. 前言 神经网络技术起源于上世纪五.六十年代,当时叫感知机(perc ...
- jsp----标签编程(JSTL)
标签编程简介 JSP的开发是在HTML代码中嵌入了大量的Java代码,但是这样一来会使得JSP页面中充满了Java程序,修改或维护起来非常的不方便, 定义一个简单的标签----空标签 要想实现一个标签 ...
- RecyclerView 输出的和排版的不一样
遇到过这样一种情况,就是RecyclerView加载出来的和看到Android Studio里的不一样 原因是: @Override public ViewHolder onCreateViewHol ...