好的,我已经从像
这样的类创建了一个对象列表 For B As Integer = 0 To 5
clients.Add(New Client)
AddHandler clients(B).OnMessage, AddressOf clients_OnRec
Next
然后这是事件声明
Public Event OnRec As EventHandler
这是我的活动
Private Sub clients_OnRec(ByVal sender As Object)
'Does something
End Sub
我的问题是如何确定列表中哪个类的实例引发了事件。我需要能够做到这样的事情:
clients(whateveronefiredit).ExecuteMethodInClass
我该怎么做?
答案 0 :(得分:0)
:)让我试着解释发生了什么
现在在列表中你有5个Client类型的对象,所有这5个对象在某种事件上调用事件处理程序clients_OnRec。
当第一个客户端引发此事件时,事件处理程序签名sender
中的Private Sub clients_OnRec(ByVal sender As Object)
将具有引发事件的客户端对象引用。
因此,为了在引发事件的对象上调用方法ExecuteMethodInClass
,您将执行以下操作:
Private Sub clients_OnRec(ByVal sender As Object)
Dim c As Client = CType(sender, Client) 'Cast the sender object as Client object
c.ExecuteMethodInClass() 'This executes the ExecuteMethodInClass on the Client object which raised this event
End Sub
希望很清楚。
干杯