2011-09-21 66 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