1. 程式人生 > WINDOWS開發 >VB.NET在基類中定義共享事件(類似於C#中的靜態事件)

VB.NET在基類中定義共享事件(類似於C#中的靜態事件)

基類:

Public Class userFun
    Private Shared _PnlStatus As String ‘必須設為共享欄位,如果不設為Shared,將不能傳遞字串內容
    Public Delegate Sub EventHandler()
    Public Shared Event PnlStatusChanged As EventHandler ’共享事件,如果不設為Shared,將不能觸發主窗體中的事件

    Public Property PnlStatus As String ‘類屬性
        Get
Return _PnlStatus End Get Set(value As String) _PnlStatus = value RaiseEvent PnlStatusChanged() ’觸發事件 End Set End Property End Class

使用者自定義控制元件ucOrder中設定狀態資訊:

Public Class ucOrder    
   Private objuserFun As New userFun
   objuserFun.PnlStatus 
= "新建訂單!" End Class

主窗體中顯示狀態資訊:

Public Class frmAdmin
    Private WithEvents objuserFun As New userFun ’新增WithEvents,顯式呼叫事件
    Private Sub objuserFun_PnlStatusChanged() Handles objuserFun.PnlStatusChanged
       PnlStatus.Text = objuserFun.PnlStatus ’主窗體顯示狀態資訊
    End Sub
End Class

總結:VB中的共享事件感覺跟C#中的靜態事件差不多。