当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > 利用自定义事件实现不同窗体间的通讯 -- C#篇

ASP.NET
如何使用vb6.0来实现中文实名搜索
C#实现Window管道技术
记录下一些关于测试工具NUNIT的链接资料,有兴趣的朋友也可以跳过去看看
编写与.NET属性窗口交互的RAD组件(自序)
asp.net 关于form认证的一般设置:
编写与.NET属性窗口交互的RAD组件(一)
ActiveX控件的打包发布[无证书发布](一)
Visual SourceSafe 6.0 的问题思考
VB报表输出的问题,恳请不吝赐教
证书和签名--试用微软提供的证书测试工具系列
[dotNET]如何利用ConfigurationSettings.AppSettings.GetValues读取配置文件中多个...
使用C#编写DES加密程序的framework
令你的网页速度大大提高
怎样得到一个系统盘的全名,不是字符,是全名,如:本地磁盘(C:)?
r在richtextbox中插入动画/控件
Code: Writing Text to a File (Visual Basic)
算法讨论:哲学家就餐问题
我们所要关注的是什么?
firebird 连接嵌入式版本
从Csharp走到VB.Net(一):MyClass保留字

ASP.NET 中的 利用自定义事件实现不同窗体间的通讯 -- C#篇


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 74 ::
收藏到网摘: n/a

 C# 中的“事件”是当对象满足一定条件,发生某些事情时,类向该类的客户提供通知的一种方法。使用事件,拥有该事件的对象不必知道需要通知谁,一旦满足了某个条件,将自动调用该事件,正确通知每个需要通知的对象。通过使用事件,提高了程序的模块化程度。
 
要在程序中使用自定义事件,需按以下步骤进行:
 
1、声明事件
要在类内声明事件,首先必须声明该事件的委托类型:
public delegate void SelectionChangedEventHandler(object sender,
    SelectionChangedEventArgs e);
 
说明:由于本示例程序需在事件中传递数据,因此定义了EventArgs的派生类SelectionChangedEventArgs。
public class SelectionChangedEventArgs : EventArgs
{
    private string m_selection;
 
     //本属性用于传递事件数据
    public string Selection
    {
        get { return m_selection; }
    }
 
    public SelectionChangedEventArgs(string selection)
    {
        m_selection = selection;
    }
}
 
委托类型定义传递给处理该事件的方法的一组参数。多个事件可共享相同的委托类型,因此仅当尚未声明任何合适的委托类型时才需要执行该步骤。
 
接下来,声明事件本身:
public event SelectionChangedEventHandler SelectionChanged;
 
 
2、调用事件
如果没有任何客户将委托与该事件挂钩,该字段将为空;否则该字段引用应在调用该事件时调用的委托。因此,调用事件时通常先检查是否为空,然后再调用事件。
public class Form2 : System.Windows.Forms.Form
{
    ... ...
 
    public event SelectionChangedEventHandler SelectionChanged;
 
    .