破宝

我是一块破破烂烂的宝贝石头。
随笔 - 94, 评论 - 1285, 引用 - 52

导航

关于

自选精华版 RECOMMENDATIONS
留言板 GUESTBOOK

本人 blog 文章、图片及其他资源等,除另有声明外,均遵循以下原则向全球(当然包括朝鲜、古巴、利比亚等国)共享:

1。欢迎转载、复制、传播、引用,但转载、复制(包括但不仅限于作为参考资料复制到本地)、传播、引用同时必须在显著位置注明作者(破宝/percyboy)和文章原始 URL 地址等信息。但商业转载、复制、传播(尤指用于图书、光盘等媒体的部分或全部),须事先征得本人的许可。

2。文章以“现状”提供,不为由于使用本站资源而造成的任何损失而负责,仅提供力所能及的咨询和参考意见。

3。关于修改:允许您将本 blog 中的资源作为参考资料复制时的一定修改,但仍须保留作者和出处信息;其他情况下的修改(包括修改后再发布),须和本人确认许可。
 

标签

每月存档

最新留言

广告

 

很久没发文章了,今天发一篇写了半个多月的教程,限于篇幅无法发布到首页来,目录如下:

.NET 事件模型教程(一)

.NET 事件模型教程(二)

.NET 事件模型教程(三)

事件、事件处理程序概念

在面向对象理论中,一个对象(类的实例)可以有属性(property,获取或设置对象的状态)、方法(method,对象可以做的动作)等成员外,还有事件event)。所谓事件,是对象内部状态发生了某些变化、或者对象做某些动作时(或做之前、做之后),向外界发出的通知。打个比方就是,对象“张三”肚子疼了,然后他站在空地上大叫一声“我肚子疼了!”事件就是这个通知。

那么,相对于对象内部发出的事件通知,外部环境可能需要应对某些事件的发生,而做出相应的反应。接着上面的比方,张三大叫一声之后,救护车来了把它接到医院(或者疯人院,呵呵,开个玩笑)。外界因应事件发生而做出的反应(具体到程序上,就是针对该事件而写的那些处理代码),称为事件处理程序event handler)。

事件处理程序必须和对象的事件挂钩后,才可能会被执行。否则,孤立的事件处理程序不会被执行。另一方面,对象发生事件时,并不一定要有相应的处理程序。就如张三大叫之后,外界环境没有做出任何反应。也就是说,对象的事件和外界对该对象的事件处理之间,并没有必然的联系,需要你去挂接。

在开始学习之前,我希望大家首先区分“事件”和“事件处理程序”这两个概念。事件是隶属于对象(类)本身的,事件处理程序是外界代码针对对象的事件做出的反应。事件,是对象(类)的设计者、开发者应该完成的;事件处理程序是外界调用方需要完成的。简单的说,事件是“内”;事件处理程序是“外”。

了解以上基本概念之后,我们开始学习具体的代码实现过程。因为涉及代码比较多,限于篇幅,我只是将代码中比较重要的部分贴在文章里,进行解析,剩余代码还是请读者自己查阅,我已经把源代码打了包提供下载。我也建议你对照这些源代码,来学习教程。[下载本教程的源代码]

……(更多、更详细内容请点击目录中的链接)……

 

欢迎大家批评指教!如希望转载,请务必参照本人blog公告内的声明!

打印 | 张贴于 2005-01-22 18:51:00 | Tag:暂无标签

留言反馈

#.NET开发资源精华收集与共享 编辑
.NetGeneral 微软.Net中文主页 .NETFramework开发中心 微软.NetFramework中文产品支持中心 微软.NetF...
2007-12-16 13:22:00 | [匿名:hhq80]
#收集一些.NET开发资源站点和部分优秀.NET开源项目 编辑
.NetGeneral 微软.Net中文主页 .NETFramework开发中心 微软.NetFramework中文产品支持中心 微软.NetFra...
2007-08-01 20:39:00 | [匿名:杨艳峰]
#.NET资源收集 编辑
.NET开发资源精华收集与共享 .NetGeneral 微软.Net中文主页 .NETFramework开发中心 微软.NetFramework中文产品支持中心 微软....
2007-07-28 11:21:00 | [匿名:雷明]
#转: NET开发资源精华收集 编辑
微软.Net中文主页 .NETFramework开发中心 微软.NetFramework中文产品支持中心 微软.NetFramework中文新闻组(Web) ...
2007-07-05 16:34:00 | [匿名:尹清约]
#.NET开发资源精华收集,欢迎访问及推荐资源 编辑
.NetGeneral 微软.Net中文主页 .NETFramework开发中心 微软.NetFramework中文产品支持中心 微软.NetFramework中文新闻组...
2007-07-05 10:20:00 | [匿名:pcjim]
#.net学习资源(转) 编辑
.net学习资源(转)
2007-04-16 18:08:00 | [匿名:王德水]
#re: .NET 事件模型教程(封面) 编辑
sorry,我发现并不是我修改后速度慢了,我执行其他的Demo也满了,昨天执行完是19秒多,今天是160秒,不知是何原因。
2005-06-29 15:18:00 | [匿名:tt]
#re: .NET 事件模型教程(封面) 编辑
请教:在您的例子的DemoE中,有下面一个方法:
private void button1_Click(object sender, System.EventArgs e)
{
statusBar1.Text = "开始工作 ....";
this.Cursor = Cursors.WaitCursor;
long tick = DateTime.Now.Ticks;

Worker worker = new Worker();

worker.RateReport += new Worker.RateReportEventHandler(this.worker_RateReport);
worker.DoLongTimeTask();

tick = DateTime.Now.Ticks - tick;
TimeSpan ts = new TimeSpan(tick);

this.Cursor = Cursors.Default;
statusBar1.Text = String.Format("任务完成,耗时 {0} 秒。", ts.TotalSeconds);
}
我做如此更改后,速度变得很慢,是何原因?
private void button1_Click(object sender, System.EventArgs e)
{
statusBar1.Text = "开始工作 ....";
this.Cursor = Cursors.WaitCursor;
long tick = DateTime.Now.Ticks;

Thread t = new Thread(new ThreadStart(DoLong));
t.Start();

tick = DateTime.Now.Ticks - tick;
TimeSpan ts = new TimeSpan(tick);

this.Cursor = Cursors.Default;
statusBar1.Text = String.Format("任务完成,耗时 {0} 秒。", ts.TotalSeconds);
}

private void DoLong()
{
Worker worker = new Worker();
worker.RateReport += new Worker.RateReportEventHandler(this.worker_RateReport);
worker.DoLongTimeTask();
}
2005-06-29 14:51:00 | [匿名:tt]
#re: .NET 事件模型教程(封面) 编辑
破宝大哥,

一直有个疑惑,想请你您帮忙解答。
我现在有一个页面a.aspx,里面有一个复合的用户控件,用户控件里面有一个LinkButton,我想要鼠标点击这个button后能触发用户控件中的一个自定事件,如下代码所示:

'定义一个事件
Public Event ItemSelected As EventHandler
Private Sub LinkButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LinkButton1.Click
 '触发事件 
RaiseEvent ItemSelected(Me, e)
End Sub
然后在a.aspx的后台代码中捕获这个事件,并给相关处理程序处理,但结果没法在a.aspx页中没法捕获到,请问在a.aspx要怎样设置才能处理这个事件?
请用VB代码解答,非常感谢!!
2005-06-09 15:30:00 | [匿名:wmj]
#re: .NET 事件模型教程(封面) 编辑
破宝大哥,支持你,怎么不上skype了?我的skype ID:cacard
2005-02-23 23:20:00 | [匿名:caca(卡卡)]
#.NET 事件模型教程 编辑
Ping Back来自:blog.csdn.net
2005-02-04 11:34:00 | [匿名:morepower]
#re: .NET 事件模型教程(封面) 编辑
载回家慢慢看
2005-01-29 18:16:00 | [匿名:Rainightwind]
#re: .NET 事件模型教程(封面) 编辑
不错,挺透彻的
2005-01-24 18:21:00 | [匿名:hchlee]
#re: .NET 事件模型教程(封面) 编辑
浅显易懂,写得很好!是我们学习的好榜样:)
2005-01-24 14:51:00 | [匿名:Webdiyer]
#re: .NET 事件模型教程(封面) 编辑
大力支持,希望更出精品
2005-01-24 12:12:00 | [匿名:随风奔跑]
#re: .NET 事件模型教程(封面) 编辑
这方面的资料看过几次书,写得有点难懂,正好你写了教程,我发现最近运气挺好的,需要什么资料,就能碰到!!!
2005-01-24 09:59:00 | [匿名:木鱼。NET]
#re: .NET 事件模型教程(封面) 编辑
太感谢了,自己一直在找这方面的好资料呀
2005-01-22 23:25:00 | [匿名:jackyrong]
#re: .NET 事件模型教程(封面) 编辑
太感谢了.
真有恒心啊!

我有一个朋友最近也学C#,这个对他会很有作用.
2005-01-22 20:08:00 | [匿名:Lostinet]
对不起,目前本随笔不允许发表新评论.

Powered by: Joycode.MVC引擎 0.5.2.0