2011-09-21 55 views
0

我完全對事件處理感到困惑。我讀了一些關於它的文章,但之後我只是感到困惑,寫在我的課堂上並使用它們。類中的事件處理

這是我的班級i。 Ë:

Public Class Test 
    Public Event playedEvent() 

    Public Sub playTimer() 
    RaiseEvent playedEvent() 
    End Sub 
End Class 

用法:

Friend WithEvents t as Test 

Private Sub AnEvent() Handles t.playedEvent() 
    'Do some stuff 
End Sub 

我沒有任何參數傳遞。但我想知道我該怎麼做。我想知道每個Test類的實例,分別運行這個事件,我的意思是每個實例都是自己的,這個事件AnEvent()會發生嗎?因爲我有很多來自我班的實例。

謝謝。

回答

1

Test類的每個實例都會有它自己的事件,你可以單獨處理它們。如果你要作爲參數添加的Test的實例時,你必須改變以下列方式將事件聲明:

Public Event playedEvent(t as Test) 

然後你就可以提出來:

RaiseEvent playedEvent(Me) 

和處理:

Private Sub AnEvent(t as Test) Handles t.playedEvent() 
    't is the actual instance of Test 
End Sub 

這裏有更多的信息:http://msdn.microsoft.com/en-us/library/wkzf914z.aspx

1

下面是一個例子:

Public Event OnDisplayViewModeChange(ByVal sender As Object, ByVal displayMode As DisplayViewMode) 



Public Sub UpdateDisplayMode(ByVal displayMode As DisplayViewMode) 
     DataViewMultiView.ActiveViewIndex = Convert.ToInt32(displayMode) 
     RaiseEvent OnDisplayViewModeChange(Me, displayMode) 
End Sub