如何使用visual basic动态更改梳子盒数量

时间:2015-02-06 20:38:21

标签: vb.net visual-studio-2010 combobox

我正在使用visual Basic。在我的表格上,我有一个文本框和一个按钮。用户将在单击按钮时在文本框中输入一个整数,程序将在表单上添加多个组合框。我的问题是如果我更改文本框中的数字大于现有的数字,我的程序将在表单上给我正确数量的组合框。但是,如果新数字小于现有数字,我的程序确实减少了表单上的组合框数量。例如,如果我的表单上已有5个组合框,我在文本框中输入10,然后单击按钮,我将获得正确数量的组合框。但如果我将数字从10改为6,我的程序不会显示6个组合框,它会一直显示我10。

任何人都可以帮助我在我的应用程序中纠正这个问题。

2 个答案:

答案 0 :(得分:0)

您可以放置​​10个组合框并隐藏未使用的组合框 例如,如果用户输入7,组合框8,9和10可以通过执行此操作隐藏

combobox.visible = false

为了让它变得更加容易,您可以制作一个组合框并通过它进行循环

Dim comboboxArray() = As Combobox = {combobox1, combobox2, combobox3, _
combobox4, combobox5, combobox6, combobox7, combobox8, combobox9, _
combobox10}
'number is the value in the textbox change the variable to what you have
if number < 10 then
    for i as integer = 9 To number step -1
        comboboxArray(i).visible = false
    next i 
end if 

答案 1 :(得分:0)

在添加新控件之前,您需要清除旧控件。

以下是使用FlowLayoutPanel自动排列控件的示例:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim x As Integer
    Dim strInput As String = TextBox1.Text
    If Integer.TryParse(strInput, x) Then
        If x > 0 Then
            FlowLayoutPanel1.Controls.Clear()
            For i As Integer = 1 To x
                Dim cb As New ComboBox
                FlowLayoutPanel1.Controls.Add(cb)
            Next
        Else
            MessageBox.Show("Please enter an Integer Greater Than Zero.", "Invalid Number of Comboboxes!")
        End If
    Else
        MessageBox.Show("Invalid Integer: " & strInput, "Invalid Integer!")
    End If
End Sub