通常我会设置这样的事件......
Public Delegate Sub MySpecialEventHandler(sender as object, e as mySpecialEventEventArgs) ' ...I will not show the implementation of mySpecialEventArgs.
Public Event MySpecialEvent as MySpecialEventHandler
Private Sub OnMySpecialEvent(newStatus as string)
Raise Event MySpecialEvent(Me,New mySpecialEventEventArgs(newStatus))
End Sub
我有一个界面......看起来像这样......
Public Interface IWizardUserControl
ReadOnly Property ShowNavigatePrevious() As Boolean
ReadOnly Property ShowNavigateNext() As Boolean
ReadOnly Property ShowNavigateFinish() As Boolean
ReadOnly Property ShowNavigateCancel() As Boolean
ReadOnly Property Description() As String
ReadOnly Property StepCaption() As String
ReadOnly Property PageImage() As System.Drawing.Image
ReadOnly Property PageHelpText() As String
Property IsValid() As Boolean
Sub OnValidStatusChanged(ByVal validStatus As Boolean)
Event ValidStatusChanged()
End Interface
我希望事件设置,例如您在上面的界面中实现的内容。
在界面中设置委托时。没有错误。但是当你尝试在userControl中实现委托时Visual Studio说“委托不能实现接口方法”
我的目标是有一个控制器类,它将派生类转换为接口,然后为interfaces事件添加一个处理程序。
任何帮助将不胜感激。提前谢谢。
编辑 - 我接受了John Saunders的建议并钻进了web.ui课程。这就是我所做的,它完美地运作。
在界面中我添加/更改了以下内容......
Sub OnValidStatusChanged(ByVal validStatus As Boolean)
Sub ValidStatusChangedHandler(ByVal sender As Object, ByVal e AsValidStatusChangedEventArgs)
Event ValidStatusChanged As EventHandler
最相关的一点是我将ValidStatusChangedHandler声明为Sub而不是委托。
我在我的派生类中实现了以下内容......
Protected Event ValidStatusChanged As EventHandler Implements IWizardUserControl.ValidStatusChanged
Protected Sub ValidStatusChangedHandler(ByVal sender As Object, ByVal e As ValidStatusChangedEventArgs) Implements IWizardUserControl.ValidStatusChangedHandler
OnValidStatusChanged(e.ValidStatus)
End Sub
Private Sub OnValidStatusChanged(ByVal status As Boolean) Implements IWizardUserControl.OnValidStatusChanged
RaiseEvent ValidStatusChanged(Me, New ValidStatusChangedEventArgs(status))
End Sub
最后在控制器类中我正在做这个......
Dim iwp As IWizardUserControl = DirectCast(wizardUserControl, IWizardUserControl)
AddHandler iwp.ValidStatusChanged, AddressOf iwp.ValidStatusChangedHandler
像魅力一样。
赛斯