我爱Aspx >> Asp.Net >> 深入理解C#编程中的组件-事件-委托在组件编程中对事件的理解是十分重要的,C# 中的“事件”是当对象发生某些有趣的事情时,类向该类的客户提供通知的一种方法。与事件联系最为紧密的,个人认为是委托.委托可以将方法引用封装在委托对象内。为了弄清组件-事件-委托三者的关系,本人用实际的例子来谈 谈小弟的理解。
首先创建一个Windows控件项目,添加如下控件样板。
当事件触发时,会传递一个EventArgs类型的参数给事件处理方法,为了能传递自定义的信息,我们可以创建一个继承于EventArgs的事件参数 类,其定义如下:
public class EventLoginArgs:System.EventArgs
{
public string strUserID;
public string strUserName;
public string strUserPWD;
public bool bVaild;
public EventLoginArgs(string userID,string userName,string userPWD)
{
strUserID = userID;
strUserName = userName;
strUserPWD = userPWD;
}
再声明两个委托,它们是对EventLoginArgs和EventArgs对象中的信息的封装,如下:
public delegate void UserLoginEventHandler(object sender,EventLoginArgs e);
public delegate void CancelEventHandler(object sender,EventArgs e);
在组件中为了能让用户自定义某事件的处理方法,所以组件必需提供事件接口.如果只是继承于单个已有的Windows控件,可以重载已知的方 法进行添加自己的处理,也可以声明自定义的事件接口.而若组件中包含多个控件,应该根据实际需要声明事件接口,此处本人就两个按钮的 使用而声明两个自定义的事件接口,如下:
Ҷƪл˵?
在C#中利用DirectX实现声音播放[05-20]
C#实现文件下载[05-20]
Visual C# 3.0 新特性概览 (二)[05-20]
Visual C# 3.0 新特性概览(一)[05-20]
C#中调用Windows API的要点[05-20]
c#收取邮件[05-20]
用Visual C#实现P2P应用程序[05-20]
用Visual C#实现局域网点对点通..[05-20]
C#下用P2P技术实现点对点聊天[05-20]
C#如何读取QQ纯真IP数据库[05-20]
在C#中利用DirectX实现声音播放[05-20]
ASP.NET程序中常用编程代码(一)[05-20]
为ASP.NET 2.0菜单控件增加targe..[05-20]
JavaScript去除空格的三种方法 (..[05-20]
ASP.NET程序中常用编程代码(二)[05-20]
C#实现文件下载[05-20]
ASP.NET 2.0 绑定高级技巧[05-20]
ASP.NET 2.0 绑定高级技巧[05-20]
开始学存储过程---更改创建存储过..[05-20]
@@IDENTITY[05-20]