我正在使用visual Basic。在我的表格上,我有一个文本框和一个按钮。用户将在单击按钮时在文本框中输入一个整数,程序将在表单上添加多个组合框。我的问题是如果我更改文本框中的数字大于现有的数字,我的程序将在表单上给我正确数量的组合框。但是,如果新数字小于现有数字,我的程序确实减少了表单上的组合框数量。例如,如果我的表单上已有5个组合框,我在文本框中输入10,然后单击按钮,我将获得正确数量的组合框。但如果我将数字从10改为6,我的程序不会显示6个组合框,它会一直显示我10。
任何人都可以帮助我在我的应用程序中纠正这个问题。
答案 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