代碼演示VB.NET事件接收功能
VB.NET事件還是比較常用的,于是我研究了一下VB.NET事件,在這里拿出來和大家分享一下,希望對(duì)大家有用。在單一的VB.NET工程中,我們可以編寫代碼類接收事件。具體可以增加一個(gè)Windows應(yīng)用工程來解決,你可以右擊它并選擇Set As Startup Project選項(xiàng),這樣它就可以在按F5的時(shí)候被運(yùn)行了。
#T#為了訪問觸發(fā)VB.NET事件的類,我們必須給EventSource工程增加一個(gè)引用,具體操作如下:選擇菜單項(xiàng)Project(工程)->Add Reference(增加引用)。之后,我們可以增加一個(gè)按鈕到窗體上,并且打開窗體的代碼窗口,再引入以下的遠(yuǎn)程名空間:
- Imports System.ComponentModel
- Imports System.Drawing
- Imports System.WinForms
- Imports EventSource
在窗體A中,我們可以使用WithEvents關(guān)鍵字來定義遠(yuǎn)程類。
- Public Class FormA
- Inherits System.WinForms.Form
- Private WithEvents objRemote As RemoteClass
當(dāng)objRemote項(xiàng)在左上角的類名字下拉表中被選擇的時(shí)候,我們可以在代碼窗口右上角的方法名字下拉列表中看到事件的列表。當(dāng)我們選擇了這個(gè)選項(xiàng),以下的代碼就將被創(chuàng)建:
- Public Sub objRemote_RemoteEvent() Handles objRemote.RemoteEvent
- End Sub
不幸的是,這些代碼是錯(cuò)誤的,因?yàn)樗鼪]有提供我們所傳遞的參數(shù)。為了解決這個(gè)問題我們只需要增加參數(shù)到聲明中去即可:
- Public Sub objRemote_RemoteEvent(ByVal Data As String) _
- Handles objRemote.RemoteEvent
- Messagebox.Show(Data)
- End Sub
我們還需要增加代碼來在對(duì)話框中顯示結(jié)果。具體做法為:增加一個(gè)按鈕到窗體中去,并為按鈕增加以下的代碼:
- Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
- objRemote = New RemoteClass()
- objRemote.DoSomething()
- End Sub
至此我們就成功完成了從一個(gè)工程中觸發(fā)事件,并且在另外一個(gè)工程中接收到這些觸發(fā)的事件了。