标签:
注解:本文摘自网络
C# 自定义带自定义参数的事件方法
C# 自定义带自定义参数的事件 需要经过以下几个步骤:
1、自定义事件参数 :要实现自定义参数的事件,首先要自定义事件参数。该参数是个类。继承自EventArgs。
2、声明委托用于事件
3、声明事件
4、定义事件触发 :事件定义后,要有个触发事件的动作。
以上基本上完成了自定义事件。不过还缺事件调用,请看下边两个步骤。
5、事件触发
6、自己编写事件的处理 :事件触发后。要处理事件。
实现:
假设有个打印对象,需要给它自定义一个打印事件。事件参数中传入打印的份数。在程序加载时,调用打印对象,并通过自定义打印参数,实现打印。
代码如下,此代码是在WinForm下编写。
1 //打印对象 2 public class CustomPrint 3 { 4 /// <summary> 5 /// 1、定义事件参数 6 /// </summary> 7 public class CustomPrintArgument : EventArgs 8 { 9 private int copies; 10 public CustomPrintArgument(int numberOfCopies) 11 { 12 this.copies = numberOfCopies; 13 } 14 public int Copies 15 { 16 get { return this.copies; } 17 } 18 } 19 20 /// <summary> 21 /// 2、声明事件的委托 22 /// </summary> 23 /// <param name="sender"></param> 24 /// <param name="e"></param> 25 public delegate void CustomPrintHandler(object sender, CustomPrintArgument e); 26 27 /// <summary> 28 /// 3、声明事件 29 /// </summary> 30 public event CustomPrintHandler CustomPrintEvent; 31 32 /// <summary> 33 /// 4、定义触发事件 34 /// </summary> 35 /// <param name="copyies">份数</param> 36 public void RaisePrint(int copyies) 37 { 38 CustomPrintArgument e = new CustomPrintArgument(copyies); 39 CustomPrintEvent(this, e); 40 } 41 } 42 43 44 45 46 47 48 /// <summary> 49 /// WinForm 构造函数 50 /// </summary> 51 public Form1() 52 { 53 InitializeComponent(); 54 55 PrintCustom(); 56 } 57 58 /// <summary> 59 /// 打印方法 60 /// </summary> 61 private void PrintCustom() 62 { 63 //实例对象 64 CustomPrint cp = new CustomPrint(); 65 66 //添加事件 67 cp.CustomPrintEvent += new CustomPrint.CustomPrintHandler(cp_CustomPrintEvent); 68 69 //5、触发事件 70 cp.RaisePrint(10); 71 72 } 73 74 //6、事件处理 75 void cp_CustomPrintEvent(object sender, CustomPrint.CustomPrintArgument e) 76 { 77 int copies = e.Copies; 78 MessageBox.Show(copies.ToString()); 79 } 80 }
作为快捷指南,可以根据这个来做。
标签:
原文地址:http://www.cnblogs.com/ningheshutong/p/5206055.html