文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>C# 自定义事件并使用自定义事件参数方法

C# 自定义事件并使用自定义事件参数方法

时间:2010-09-29  来源:宽田

C# 自定义带自定义参数的事件方法


C# 自定义带自定义参数的事件 需要经过以下几个步骤:
  1、自定义事件参数   :要实现自定义参数的事件,首先要自定义事件参数。该参数是个类。继承自EventArgs。
  2、声明委托用于事件  
  3、声明事件
  4、定义事件触发    :事件定义后,要有个触发事件的动作。
  以上基本上完成了自定义事件。不过还缺事件调用,请看下边两个步骤。

  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。

 

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载