是否可以循环使用具有特定名称的所有组合框。例如,我在一个组合框中有25个组合框我需要循环其中的20个(这20个中的每一个都有名称special_combo_1,special_combo_2等等,但另外5个有另外的名字所以我需要保持原样)并改变它们的宽度at一次或更改文本或其他任何内容。
答案 0 :(得分:0)
您可以使用Control.Controls
获取GroupBox
包含的所有控件。
然后,您应该使用TryCast(Object, Object)
将每个Control
对象转换为ComboBox
类型。
您可以使用String.StartsWith(String)
检查前缀。
For Each Item As Control In GroupBox1.Controls
Dim ComboBoxItem As ComboBox = TryCast(Item, ComboBox)
If ComboBoxItem IsNot Nothing Then
If ComboBoxItem.Name.StartsWith("special_combo_") Then
' Code here
End If
End If
Next
答案 1 :(得分:-1)
使用OfType
从控件集合中创建一组组合框。没有TryCast
需要如此增加表现。然后使用Where
子句对其进行过滤,以进一步向下钻取。现在你只迭代一小部分控件。
Dim spComboboxes =
GroupBox1.Controls.OfType(Of Combobox)().
Where(Function(cb) cb.Name.StartsWith("special_combo_")).ToList()
迭代组合框:
For Each cb In spComboboxes
'do something
Next