VB.NET事件接收功能实例演示

来源:岁月联盟 编辑:exp 时间:2009-11-03

VB.NET事件还是比较常用的,于是我研究了一下VB.NET事件,在这里拿出来和大家分享一下,希望对大家有用。在单一的VB.NET工程中,我们可以编写代码类接收事件。具体可以增加一个Windows应用工程来解决,你可以右击它并选择Set As Startup Project选项,这样它就可以在按F5的时候被运行了。

为了访问触发VB.NET事件的类,我们必须给EventSource工程增加一个引用,具体操作如下:选择菜单项Project(工程)->Add Reference(增加引用)。之后,我们可以增加一个按钮到窗体上,并且打开窗体的代码窗口,再引入以下的远程名空间:

  1. Imports System.ComponentModel  
  2. Imports System.Drawing  
  3. Imports System.WinForms   
  4. Imports EventSource  

在窗体A中,我们可以使用WithEvents关键字来定义远程类。

  1. Public Class FormA  
  2. Inherits System.WinForms.Form  
  3. Private WithEvents objRemote As RemoteClass  

当objRemote项在左上角的类名字下拉表中被选择的时候,我们可以在代码窗口右上角的方法名字下拉列表中看到事件的列表。当我们选择了这个选项,以下的代码就将被创建:

  1. Public Sub objRemote_RemoteEvent() Handles objRemote.RemoteEvent  
  2. End Sub 

不幸的是,这些代码是错误的,因为它没有提供我们所传递的参数。为了解决这个问题我们只需要增加参数到声明中去即可:

  1. Public Sub objRemote_RemoteEvent(ByVal Data As String) _  
  2. Handles objRemote.RemoteEvent  
  3. Messagebox.Show(Data)   
  4. End Sub  

我们还需要增加代码来在对话框中显示结果。具体做法为:增加一个按钮到窗体中去,并为按钮增加以下的代码:

  1. Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)  
  2. objRemote = New RemoteClass()  
  3. objRemote.DoSomething()  
  4. End Sub 

至此我们就成功完成了从一个工程中触发事件,并且在另外一个工程中接收到这些触发的事件了。