我在UserForm中有3个ListView,还有一些其他项目。目前,当我展开UserForm时,ListViews和其他项目会随着UserForm大小的增加而扩展。
我正在做的事情还是通过遍历UserForm上的所有控件并检查它是否是ListView,然后在所有列中循环并根据需要进行扩展来扩展ListView中列的大小。
这是我目前所在的地方......
For Each Ctrl As Control In Me.Controls
If (TypeOf Ctrl Is ListView) Then
' This is where I'm not sure what to do!
' I want to loop through this Ctrl and view its columns
End If
Next
任何想法?
答案 0 :(得分:1)
如果Plutonix'启用自动调整大小列的建议不起作用,然后阅读...
要访问该控件的属性,您需要先将其强制转换为ListView
(到目前为止,您只需检查它是否 a ListView
。然后,您可以遍历行和列:
For Each Ctrl As Control In Me.Controls
If TypeOf Ctrl Is ListView Then
Dim currentListView As ListView = DirectCast(Ctrl, ListView)
' Loop over the rows (items) in the view
For Each item As ListViewItem In currentListView.Items
Next
End If
Next
您可能最终还需要一个递归控制搜索 - 您当前的循环只会查找Me
的直接子控件。
另一个想法:只需在外部for循环中返回正确类型的控件:
For Each listViewControl As Control In Me.Controls.OfType(Of ListView)()
For Each item As ListViewItem In listViewControl.Items
Next
Next