自定义事件(如未作说明,本博客文档都是用C#代码)

 1//定义代理
 2public delegate void ConnectionErrorDelegate(ConnectionStatus status, string msg);
 3//定义代理事件
 4public event ConnectionErrorDelegate ConnectionErrorEvent;
 5//定义代理对象
 6private ConnectionErrorDelegate deleg = null;
 7//定义代理的方法
 8deleg = new ConnectionErrorDelegate(service_ConnectionErrorEvent);
 9//将代理对象赋值给service对象的代理事件
10            service.ConnectionErrorEvent += deleg;
11//触发这个事件
12ConnectionErrorEvent(status, errmsg);
先来分析一下,之前,我们常用了已经定好的代理和事件,我们要作的就是实例化代理对象,也就是真真要执行的方法,代理事件,和代理早就在.net组件中了,拿按钮的单击事件来说
我们在设计器中看到的是 this.button1.Click += new System.EventHandler(this.button1_Click);
其中的EventHandler
    // 摘要:
    
//     表示将处理不包含事件数据的事件的方法。
    [Serializable]
    [ComVisible(
true)]
    
public delegate void EventHandler(object sender, EventArgs e);
而this.button1.Click则是
   //
        
// 摘要:
        
//     在单击控件时发生。
        public event EventHandler Click;
现在大家明白了,我们要做的是定义个和代理相同参数的方法,将这个代理方法的入口给事件,点击按扭,就可以了
在单击按钮时,应该是产生了Click(boject,e.empter);的方法,这里面的参数是乱写的,大概就是表示鼠标的一些参数
具体思路就是这样,有什么不明白的可以加我的群聊
posted @ 2008-05-15 19:14  凡的世界  阅读(302)  评论(0)    收藏  举报