您的位置:逆风者 VC++ 正文
 添加时间:2007-09-01 原文发表:2007-08-31 人气:4 来源:vckbase.com

本文章共11316字,分8页,当前第1页,快速翻页:
 

探索Visual Basic中系列事件处理程序的奥秘


原著:Ken Getz

翻译:小刀人

逆风编程精品


原文出处:MSDN Magazine June 2005

本文使用了以下技术:
Visual Basic, .NET Framework
代码下载:
EventHandling.exe (158KB)

本文讨论:

  • 在Visual Basic 6.0, Visual Basic .NET, and Visual Basic 2005中事件是如何运作的
  • Visual Basic .NET事件如何编译
  • 异常和手工调用事件处理程序程序
  • 如何编写自定义事件

事件是你的代码兵器库中的主要部分,无论你用Visual Basic® 6.0,Visual Basic .NET 2002,Visual Basic .NET 2003,还是Visual Basic 2005。窗体和控件引发事件,同时你的代码处理这些事件。你用Visual Basic写的最初应用程序大多会是在一个窗体上放置一个按钮,处理这个click事件,并在运行时你点击这个按钮会显示某些文本在提示框中。还有什么比这更容易?
但是你又真正了解事件多少呢?在你向某个类中添加一个事件处理程序是将会发生什么?在本文中,基于我为 AppDev 所写的课件,我将用各种方法来演示事件和事件处理程序交互,并且我将说明它们如何能解决一般问题。也许这些信息中的一些对你来说并不新鲜,但是如果你对事件的了解并不深入,这里肯定有些东西让你惊奇。在任一情况下,下载这两个示例应用程序(一个是用Visual Basic .NET .2002和2003,一个是用Visual Basic 2005)并理解之。所有内容适用于Visual Basic .NET2002 和 2003 及 Visual Basic 2005,除了最后的论及自定义事件的部分,它只能在Visual Basic 2005下工作。
我将假定你已有一些关于委托和多路广播委托的基本知识。如果你没有研究过这些重要的Microsoft® .NET Framework特性,现在你就该去做了。获得这些问题的更多信息可以看看Ted Pattison的两部分关于委托的概论( Basic Instincts: Implementing Callback Notifications Using DelegatesBasic Instincts: Implementing Callbacks with a Multicast Delegate )。

事件
Visual Basic(在Visual Basic .NET之前)为你提供了创建和处理事件的简单机制,并且Visual Basic .NET 2002和2003提供了几个不同的方法来做它们。Visual Basic 2005甚至允许你更强地控制事件处理程序,正如你将在本文里所看到的。
事件提供一个松散的联系机制,它允许类为在将来某个时间可能或也许不可能发生的通知注册。如果“侦听器”得到它们正在等待的事件发生的通知,它们就处理这种情况。如果不,它们只是保持监听。一个按钮点击事件处理程序用类提供的按钮的功能(functionality)来注册它自己;在一个用户点击这个按钮时,这个按钮的类引发Click事件,所有侦听器(这里可能是此按钮的多个Click事件处理程序)运行它们的代码,并继续执行代码。
我的示例程序包括一组类(FileSearch1到FileSearch5用于Visual Basic .NET 2002 和 2003,而FileSearch1到FileSearch6可用于Visual Basic 2005)在一个指定位置搜索文件并在找到时引发一个事件。FileSearch类只想在某个令人感兴趣的事情发生时让某个对应的类监听到。在这种情况下,每当FileSearch类发现另一个文件时某个有趣的事情就会发生。许多侦听器类可能会希望对该事件做出反应。
以.NET的观点来说,一个类可以在代码执行的任何一点引发一个事件。其他类可以订阅这个事件,并且它们可以在事件发生时通过.NET Framework获得通知。这个引发事件的类一般并不会知道有多少(如果有的话)侦听器,尽管它可能做出某些努力以收集这个信息,正如你将在本文后面所看到的。另外,多侦听器可以注册以获得通知,并且每个都可以被通知而对其他任何侦听器一无所知。
 

本文章更多内容1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 下一页>>
相关文章

ADO操作access全过程和CListCtrl的用法
图像与文字的合成
如何使用CppUnit进行单元测试
如何在MSWord中加入MSAgent
COM 组件设计与应用(十五)——连接点(vc6
简易方法淡入淡出启动画面
URL编码
使用CFtpFileFind和递归算法来遍历ftp目录
FMail文件信使 V1.0
一个简单的工控管道控件
利用 .Net XML 解析 Execl XML单元格
串口转TCP/IP 实用程序
保证你现在和未来不失业的十种关键技术
ftp协议实现多线程断点续传
Visual C 环境下DBGrid控件的使用
在存储过程中调用外部的动态连接库(MS SQL
让窗口轻而易举变漂亮
自绘按钮补遗
Windows资源管理器Web视图界面
一个好用的ODBC数据库类CMYODBC

相关评论


本文章所属分类:首页 VC++

  热门关键字: