使用delegate类型设计自定义事件
定义和使用自定义事件的步骤如下:
(1)在Class之外定义一个delegate类型,用于确定事件程序的接口
(2)在Class内部,声明一个public event变量,类型为上一步骤定义的delegate类型
(3)在某个Method或者Property内部某处,触发事件
(4)Client程序中使用+=操作符指定事件处理程序 例子:
例子:
public delegate void MyEventHandler(object sender, long lineNumber) ;
public class DataImports
{
// 定义新事件NewLineRead
public event MyEventHandler NewLineRead ;
public void ImportData()
{
long i = 0 ; // 事件参数
while()
{
i++ ;
// 触发事件
if( NewLineRead != null ) NewLineRead(this, i);
//
}
//
}
//
}
// 以下为Client代码
private void CallMethod()
{
// 声明Class变量,不需要WithEvents
private DataImports _da = null;
// 指定事件处理程序
_da.NewLineRead += new MyEventHandler(this.DA_EnterNewLine) ;
// 调用Class方法,途中会触发事件
_da.ImportData();
}
// 事件处理程序
private void DA_EnterNewLine(object sender, long lineNumber)
{
//
}
转载于:https://www.cnblogs.com/miaomiaoga/archive/2004/11/14/63832.html
使用delegate类型设计自定义事件相关推荐
- C#:委托和自定义事件
1. 委托概述 "委托"相当于C++中的"函数指针",委托必须与所要"指向"的函数在"参数"和"返回类型&qu ...
- 转:终于会用c#中的delegate(委托)和event(事件)了
第一个例子: public class DelegateTest {// 声明delegate对象 public delegate void CompareDelegate(int a,int b); ...
- C#事件-自定义事件
事件有很多,比如说 鼠标的事件:MouserMove,MouserDown等. 键盘的事件:KeyUp,KeyDown,KeyPress. 有事件,就会有对事件进行处理的方法,而事件和处理方法之间是怎 ...
- 浅析C#的事件处理和自定义事件
一.简单的自定义事件(1):无参数 namespace UserInputMonitor { class UserInputMonitor { public delegate void UserReq ...
- WPF设计の自定义窗体
原文:WPF设计の自定义窗体 效果图如下: 实现思路: 1.继承Window类 2.为自定义的CustomWindow类设计窗体样式(使用Blend很方便!) 3.为窗体增加最大最小化和关闭按钮,并实 ...
- Flash/Flex学习笔记(34):AS3中的自定义事件
类似C#中自定义事件需要一个自定义的EventArgs子类一样,AS3也需要开发者自定义一个Event类的子类,这里我们假设一种场景:设计一个Person(人物)类,里面有Age(年龄),Name(姓 ...
- 模板使用自定义类型_自定义虚幻图表_拓展蓝图功能
最近研究了下虚幻的图表编辑器写法,制作了个基础模板给大家用来制作自己的编辑器~ 资源类型节点编辑器(提供了基础的节点编辑功能.并保存时转化为UObject的子类的运行时数据结构): Eragon-Br ...
- 【JS】512- JS 自定义事件如此简单!
在前端开发世界中,JavaScript 和 HTML 之间往往通过 事件 来实现交互.其中多数为内置事件,本文主要介绍 JS自定义事件概念和实现方式,并结合案例详细分析自定义事件的原理.功能.应用及注 ...
- javascript中自定义事件
自定义事件:用户可以指定事件类型,这个类型实际上就是一个字符串,然后为这个类型的事件指定事件处理函数,可以注册多个事件处理函数(用数组管理),调用时,从多个事件处理函数中找到再调用. function ...
最新文章
- Flutter专题1-环境搭建
- idea中使用docker插件部署项目
- 36氪研究 | 智慧零售行业研究报告
- 第十六届智能车竞赛广东省线上比赛第二波来袭
- mysql sleep详解_关于MySQL的SLEEP(N)函数
- 网页设计精粹:网页中那些迷人的按钮设计
- SpringMVC的表单标签库
- jquery.MultiFile 实现自动删掉上传列表
- python屏幕的交互(读取输出信息)input,raw_input的区别
- sc7cb27180 士兰微_供应 SILAN/士兰微 SC7A30E SC7A30 LGA10-3A 加速度计/三轴磁传感器
- 【QT】QT从零入门教程(十六):QSS样式表
- 13.设计模式--外观模式(Facade模式)
- 渥太华大学计算机科学,加拿大渥太华大学计算机科学排名第四
- Python L型组件填图问题(棋盘覆盖问题)
- [日语二级词汇]日语二级必会汉字总结10
- 用C#编写Visionpro相关窗体应用(.NET Framework)
- linux上项目运行日志导致磁盘空间不够的问题
- java 参考中文站 http://www.javaref.cn
- 【三维目标检测】PointRCNN(一)
- java实现图片上插入文字并保存
热门文章
- Python3 使用 pymysql 连接 MySQL 建表时出现 Warning3719 UTF8 警告
- 【牛客 - 157C】PH试纸(前缀和,或权值线段树,主席树)
- 【EOJ Monthly 2019.01 - E】唐纳德先生与假骰子(假概率问题)
- Centos7下安装Python3.5
- mysql 7天自动拒单功能,mysql查询最近7天的数据,没有数据自动补0
- android 居右属性,使用layoutDirection属性设置布局靠左或靠右
- linux内核支持的加密算法,Linux Kernel(Android) 加密算法总结(三)-应用程序调用内核加密算法接口...
- php 生成验证码干扰元素,PHP生成指定位数验证码与可控干扰元素第二篇
- php 实现百度坐标转换,PHP实现腾讯与百度坐标转换
- docker run后台启动命令_Docker-第五部分:15个 Docker 命令