vb.net 动态访问动态控件

vb.net dynamic accesing dynamic controls

我已经在 WinForm 中放置了一个 FlowLayoutPanel 并创建了一个名为 ContactW

的复合控件

通过一个循环,我用几个 ContactW 个对象填充了 FlowLayoutPanel

For index = 0 To 99
    Dim Contact As New ContactW.BaseContactW()
    Contact.Tag = index
    'Here I could set properties
    '....
    AddHandler Contact.ContactClickEvt, AddressOf GenericClick
    flp_ContaninerContacts.Controls.Add(Contact)
Next

GenericClick 得到 ContactW 对象,我可以修改它的属性

Public Sub GenericClick(ByVal sender As System.Object, ByVal e As System.EventArgs)
    Dim cwa As ContactW.BaseContactW = CType(sender, ContactW.BaseContactW)
    MessageBox.Show("you have clicked " & CType(CType(sender, System.Object).Tag, String))
    cwa.ContactName = "Robert"
End Sub

但我想使用索引或标签修改 ContactW 的属性,例如:

Contact(21).ContactName = "Julia"
Contact(21).ContactAge = 35
Contact(21).ContactStatus = "Married"

我怎样才能做到这一点?

您首先将控件添加到的 Controls 集合是一个集合,因此您只需像对任何其他集合一样对其进行索引。