如何在vb.net的tablelayoutpanel中动态添加combox中的项目

时间:2014-11-20 13:22:22

标签: vb.net combobox tablelayoutpanel

我在tablelayoutpanel中动态创建了组合框,我想动态地向该组合框添加项目(我不想使用数据源)。

这是我的代码

 Dim cmb(maxx)

    For a = 0 To maxx - 1
        TableLayoutPanel1.Height += 31
        TableLayoutPanel1.RowStyles.Add(New RowStyle(SizeType.Absolute, 30))
        TableLayoutPanel1.RowCount += 1
        TableLayoutPanel1.Controls.Add(New CheckBox With {.Text = CopyaillongoDataSet.inventory.Rows(a).Item(1).ToString, .Font = New System.Drawing.Font("Microsoft Sans Serif", 10)}, 0, TableLayoutPanel1.RowCount - 1)
        TableLayoutPanel1.Controls.Add(New ComboBox With {.Name = cmb(a), .MaxDropDownItems = 10, .DropDownStyle = ComboBoxStyle.DropDownList}, 1, TableLayoutPanel1.RowCount - 1)
        cmb(a).items.add(a)
    Next

我为一个组合框分配了一个名字并尝试使用该名称来添加项目但是不成功。是否可以动态创建组合框动态创建项目?如果是的话,你能帮助我吗?我正在研究我的论文,我需要摆脱这个问题。谢谢那些可以提供帮助的人。

1 个答案:

答案 0 :(得分:1)

您不能像在代码中那样以字符串名称引用控件(您没有在Dim cmd(maxx)和循环之间发布您正在进行的操作,但我和#39; m 猜测你想做这样的事情,在那里创建一个新的ComboBox控件并将其添加到Panel:

Dim newCombo As New ComboBox With {.MaxDropDownItems = 10,
                                   .DropDownStyle = ComboBoxStyle.DropDownList}
newCombo.Items.Add(a)
TableLayoutPanel1.Controls.Add(newCombo, 1, TableLayoutPanel1.RowCount - 1)

您可以稍后使用TableLayoutPanel1.GetControlFromPosition(column, row)功能引用控件。