2

我的表单上有 8 个组合框,它们都包含相同的值 - 是和否。

有没有比必须做 combox1.items.add("Yes") 等更快的方法?

我有以下内容,但似乎找不到与添加项目有关的任何内容。

    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

干杯

4

3 回答 3

4

您可以使用Enumerable.OfType

For Each cmb In Panel1.Controls.OfType(Of ComboBox)()
    cmb.Items.Add("Yes")
Next
于 2012-11-27T15:18:38.493 回答
1

我会创建一个DataSource包含{Yes,No}值,例如作为 aList然后这样做:

For Each cmb In Panel1.Controls.OfType(Of ComboBox)()
  cmb.DataSource = myYesNoDataSource
Next

稍后如果您需要接受YandN代替Yesand No,您可以相应地转换为Dictionaryand 设置ValueMemberand DisplayMember。另外,您的可用值列表仅初始化一次。因此,您的解决方案变得灵活。

于 2012-11-27T15:22:12.813 回答
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

希望这段代码也能帮助你。

于 2014-12-09T13:41:42.893 回答