VB.NET在基類中定義共享事件(類似於C#中的靜態事件)
阿新 • • 發佈:2020-06-21
基類:
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 ‘類屬性 GetReturn _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#中的靜態事件差不多。