Visual Basic - 处理列表中类的事件 [英] Visual Basic - Handle events for class within a list
本文介绍了Visual Basic - 处理列表中类的事件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
{
公共物业设备列表(设备)
}
公共类设备
{
公共事件CalculateFired
公共子计算
RaiseEvent CalculateFired
End Sub
}
如何处理EquipmentCollection类中的Equipment类的CalculateFired事件?
。 NET 3.5,VB
解决方案
这对我有用。
公共类Form1
私有子Form1_Load(发件人作为对象,作为EventArgs)处理MyBase.Load
Dim ec作为新的设备收藏
Dim eq作为新设备
Dim el作为新列表(设备)
eq =新设备
el.Add(eq)
eq =新设备
el.Add(eq)
eq =新设备
el.Add(eq)
eq =新设备
el.Add(eq)
eq =新设备
el.Add(eq)
eq =新设备
el.Add(eq)
eq =新设备
el.Add(eq)
ec.EquipmentList = el
ec.EquipmentList.Item(2).Calculate()
End Sub
结束类
公共类EquipmentCollection
私有WithEvents _EquipmentList作为新列表(设备)
公共属性设备列表作为列表(设备)
获取
返回_EquipmentList
结束获取
设置(值作为列表(设备))
Dim counter As Integer
_EquipmentList = value
对于counter = 0到_EquipmentList.Count - 1
AddHandler _EquipmentList.Item(counter).CalculateFired,AddressOf HandleCalculateFired
下一个
结束集
结束属性
Private Sub HandleCalculateFired()
MsgBox(calc was fired)
End Sub
结束类
公共类设备
公共事件CalculateFired()
Public Sub Calculate()
RaiseEvent CalculateFired()
End Sub
结束类
Public Class EquipmentCollection
{
Public Property EquipmentList As List(Of Equipment)
}
Public Class Equipment
{
Public Event CalculateFired
Public Sub Calculate
RaiseEvent CalculateFired
End Sub
}
How can I handle the CalculateFired event on the Equipment class within the EquipmentCollection class?
.NET 3.5, VB
解决方案
This worked for me.
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim ec As New EquipmentCollection
Dim eq As New Equipment
Dim el As New List(Of Equipment)
eq = New Equipment
el.Add(eq)
eq = New Equipment
el.Add(eq)
eq = New Equipment
el.Add(eq)
eq = New Equipment
el.Add(eq)
eq = New Equipment
el.Add(eq)
eq = New Equipment
el.Add(eq)
eq = New Equipment
el.Add(eq)
ec.EquipmentList = el
ec.EquipmentList.Item(2).Calculate()
End Sub
End Class
Public Class EquipmentCollection
Private WithEvents _EquipmentList As New List(Of Equipment)
Public Property EquipmentList As List(Of Equipment)
Get
Return _EquipmentList
End Get
Set(value As List(Of Equipment))
Dim counter As Integer
_EquipmentList = value
For counter = 0 To _EquipmentList.Count - 1
AddHandler _EquipmentList.Item(counter).CalculateFired, AddressOf HandleCalculateFired
Next
End Set
End Property
Private Sub HandleCalculateFired()
MsgBox("calc was fired")
End Sub
End Class
Public Class Equipment
Public Event CalculateFired()
Public Sub Calculate()
RaiseEvent CalculateFired()
End Sub
End Class
这篇关于Visual Basic - 处理列表中类的事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文