я поставил FlowLayoutPanel
в WinForm и создал составной элемент управление с именем ContactW
vb.net динамические экранного динамические элементы управления
с петлей я заполнил FlowLayoutPanel
с несколькими ContactW
объектов
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"
Как я могу добиться этого?
, который является коллекцией элементов управления? flp_ContaninerContacts.Controls? – Paul
Если я попробую 'flp_ContaninerContacts.Controls (1)' Я не могу получить доступ к свойствам. – Paul
Вы получаете ссылку 'Control', потому что коллекция может содержать любой тип управления. Вы должны указать его как особый тип для доступа к членам этого типа. – jmcilhinney