我的表单上有8个组合框,它们都具有相同的值 - 是和否。
有没有比做combox1.items.add(“是”)等更快的方法?
我有以下内容,但我似乎无法找到与添加项目有关的任何内容。
Dim cmb As Control
For Each cmb In Panel1.Controls
If TypeOf cmb Is ComboBox Then
'cmb. isnt beinging anything up for adding items?
End If
Next
干杯
答案 0 :(得分:4)
您可以使用Enumerable.OfType
:
For Each cmb In Panel1.Controls.OfType(Of ComboBox)()
cmb.Items.Add("Yes")
Next
答案 1 :(得分:1)
我会创建一个包含DataSource
值的{Yes,No}
,例如List
,然后执行此操作:
For Each cmb In Panel1.Controls.OfType(Of ComboBox)()
cmb.DataSource = myYesNoDataSource
Next
稍后,如果您需要接受Y
和N
代替Yes
和No
,则可以转换为Dictionary
并设置ValueMember
}和DisplayMember
相应的。此外,您的可用值列表仅初始化一次。所以你的解决方案变得灵活。
答案 2 :(得分:0)
如果您没有使用面板,此代码将非常有用。 如果您有5个组合框,则给出计数1到5以及ComboBox1,ComboBox2,comboBox3等组合框的名称。
For count = 1 To 5
Dim combobox = DirectCast(Me.Controls("ComboBox" & n & ""), ComboBox)
combobox.Items.Add("Ok")
Next
希望这段代码也可以帮到你。