自定义事件

原创 2011年01月18日 15:23:00

自定义事件

简单的自定义事件

首先定义一个类来监听客户端事件,这里我们监听键盘的输入。

定义一个委托。

public delegate void UserRequest(object sender,EventArgs e);

前面的object用来传递事件的发生者,后面的EventArgs用来传递事件的细节,现在暂时没什么用处,一会后面的例子中将使用。

下面定义一个此委托类型类型的事件

public event UserRequest OnUserRequest;

下面我们来做一个死循环

public void Run() 

    bool finished=false; 
    do 
       { 
          if (Console.ReadLine()=="h") 
            { 
               OnUserRequest(this,new EventArgs()); 
            }
       }while(!finished); 
}

此代码不断的要求用户输入字符,如果输入的结果是h,则触发OnUserRequest事件,事件的触发者是本身(this),事件细节无(没有传递任何参数的EventArgs实例)。我们给这个类取名为UserInputMonitor。

下面我们要做的是定义客户端的类 
首先得实例化UserInputMonitor类 
UserInputMonitor monitor=new UserInputMonitor();

然后我们定义一个方法。

private void ShowMessage(object sender,EventArgs e) 

Console.WriteLine("HaHa!!"); 
}

最后要做的是把这个方法和事件联系起来(订阅事件),我们把它写到库户端类的构造函数里。

Client(UserInputMonitor m) 

m.OnUserRequest+=new UserInputMonitor.UserRequest(this.ShowMessage); 
//m.OnUserRequest+=new m.UserRequest(this.ShowMessage);

//注意这种写法是错误的,因为委托是静态的

}

相关文章推荐

javascript之自定义事件

  • 2012年08月27日 09:48
  • 1KB
  • 下载

Android为自定义控件添加事件

1)文章简介 创建自定义控件并为它添加一个自定义事件 当用户单击自定义控件中的“测试”按钮时触发按钮自定义事件 2)定义一个layout(activity_custom.xml)作为自定义控件的...

cocos2dx-lua 自定义事件类

  • 2016年12月28日 18:10
  • 2KB
  • 下载

WPF中自定义的DataTemplate中的控件,在Window_Loaded事件中加载机制初探

WPF的Window_Loaded事件中控件加载机制初探

自定义事件选择器

  • 2017年08月23日 09:59
  • 4.19MB
  • 下载

c#中自定义事件的委托

  • 2009年05月11日 17:54
  • 93KB
  • 下载

spring中自定义Event事件的使用和浅析

在我目前接触的项目中,用到了许多spring相关的技术,框架层面的spring、spring mvc就不说了,细节上的功能也用了不少,如schedule定时任务、Filter过滤器、 intercep...

C#自定义事件的编写步骤

  • 2008年09月27日 11:20
  • 575B
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:自定义事件
举报原因:
原因补充:

(最多只允许输入30个字)