当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > 下面真正开始讲事件的内容

ASP.NET
一个多文档界面的应用程序
asp+ 制作图形
asp.net中的vb7中如何调用dll中的函数
asp.net中的vb7中如何使用socket作一个传送时间的server
asp+发送Email完全手册
用浏览器来接收C# 的程序返回的时间cool!
DataGrid巧用实现目录浏览
asp+中常用的NameSpace的讲解
随机函数生成密码的asp.net版本
强大的数组功能(asp+程序数组功能调用)
如何用asp+获取post的页面的数据
asp+版本简单的留言板的制作(一)
asp+版本简单的留言板的制作(二)
asp+版本简单的留言板的制作(三)
如何在服务器上保存一定时间的信息
一个功能完善的专栏管理的程序->这是asp.net的第二个应用(一)
一个功能完善的专栏管理的程序->这是asp.net的第二个应用(二)
一个功能完善的专栏管理的程序->这是asp.net的第二个应用(三)
这是asp.net的第二个应用(四)
这是asp.net的第二个应用(五)

ASP.NET 中的 下面真正开始讲事件的内容


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


首先还是要问,什么是事件?
事件类似于异常,都是由对象触发的。不同的事件只不过是触发的时间,原因不一样罢了
所以有了Onload OnClick等事件订阅事件的含义就是给事件提供处理程序的代码在事件发生的时候执行这些代码他们称之为事件处理程序
时间可以有许多订阅的处理程序在事件触发的时候这些程序都会被调用
事件处理程序本身都是简单的函数他们唯一的限制就是要具有和委托相同的签名
发现自己的表达能力不行,还是来个例子吧

//定义委托
public delegate void MessageHandler(string messageText);
public class Connection
{
//定义事件
public event MessageHandler MessageArrived;
private Timer pollTimer;
public Connection()
{
pollTimer = new Timer(100);
pollTimer.Elapsed += new ElapsedEventHandler(CheckForMessage);
}
public void Connect()
{
pollTimer.Start();
}
public void Disconnect()
{
pollTimer.Stop();
}
private void CheckForMessage(object source, ElapsedEventArgs e)
{
Console.WriteLine("Checking for new messages.");
Random random = new Random();
if ((random.Next(9) == 0) && (MessageArrived != null))

{
//激发事件
MessageArrived("Hello Mum!");
}
}
}

public class Display
{
//事件案所要执行的函数
public void DisplayMessage(string message)
{
Console.WriteLine("Message arrived: {0}", message);
}
}


class Class1
{
static void Main(string[] args)
{
Connection myConnection = new Connection();
Display myDisplay = new Display();
//订阅事件
myConnection.MessageArrived +=
new MessageHandler (myDisplay.DisplayMessage);
myConnection.Connect();
Console.ReadLine();
}
}

总值事件的三要素要具备:
1、事件委托
2、事件的定义
3、事件的订阅
有了这三项,再在适时的时候触发该事件,相应的代码就会被执行

都怪语文没学好,惭愧