C# 自定义带自定义参数的事件方法
5、事件触发 6、自己编写事件的处理 :事件触发后。要处理事件。 实现: 假设有个打印对象,需要给它自定义一个打印事件。事件参数中传入打印的份数。在程序加载时,调用打印对象,并通过自定义打印参数,实现打印。 代码如下,此代码是在WinForm下编写。
//打印对象
public class CustomPrint { /// <summary> /// 1、定义事件参数 /// </summary> public class CustomPrintArgument : EventArgs { private int copies; public CustomPrintArgument(int numberOfCopies) { this.copies = numberOfCopies; } public int Copies { get { return this.copies; } } } /// <summary> /// 2、声明事件的委托 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public delegate void CustomPrintHandler(object sender, CustomPrintArgument e); /// <summary> /// 3、声明事件 /// </summary> public event CustomPrintHandler CustomPrintEvent; /// <summary> /// 4、定义触发事件 /// </summary> /// <param name="copyies">份数</param> public void RaisePrint(int copyies) { CustomPrintArgument e = new CustomPrintArgument(copyies); CustomPrintEvent(this, e); } } /// <summary> /// WinForm 构造函数 /// </summary> public Form1() { InitializeComponent(); PrintCustom(); } /// <summary> /// 打印方法 /// </summary> private void PrintCustom() { //实例对象 CustomPrint cp = new CustomPrint(); //添加事件 cp.CustomPrintEvent += new CustomPrint.CustomPrintHandler(cp_CustomPrintEvent); //5、触发事件 cp.RaisePrint(10); } //6、事件处理 void cp_CustomPrintEvent(object sender, CustomPrint.CustomPrintArgument e) { int copies = e.Copies; MessageBox.Show(copies.ToString()); } } 运行程序,在弹出窗口中会显示10。
|
|