在visual basic(windows应用程序)中清除组合框的项目

时间:2016-07-01 10:01:55

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

我已编写此代码以清除组合框的项目

但我面临的问题是当我选择" a"从ComboBox1开始,然后ComboBox2显示" 1"," 2"" 3"并假设我选择" 1"从ComboBox2然后下一步当我将ComboBox1的值更改为" b"那么" 4"," 5"和" 6"显示在ComboBox2的下拉菜单中,但ComboBox2中的选定值仍为" 1"

If ComboBox1.text="a" then
ComboBox2.items.clear()
ComboBox2.items.add("1")
ComboBox2.items.add("2")
ComboBox2.items.add("3")
ElseIf ComboBox1.text="b" then
ComboBox2.items.clear()
ComboBox2.items.add("4")
ComboBox2.items.add("5")
ComboBox2.items.add("6")
ElseIf ComboBox1.text="c" then
ComboBox2.items.clear()
ComboBox2.items.add("7")
ComboBox2.items.add("8")
ComboBox2.items.add("9")
Else
ComboBox2.items.clear()
End if

1 个答案:

答案 0 :(得分:0)

我认为您要做的是更改框的内容,因此旧的选定项目不再有任何意义可供选择。正如一些评论所暗示的那样,您仍然选择了残差索引。您需要重置索引(为-1),以便不选择任何内容。

这应该可以解决问题,方法是每次清除/重新填充方框内容时清除所选索引(选择项目)。

If ComboBox1.text="a" then
    ComboBox2.items.clear()
    ComboBox2.SelectedIndex = -1
    ComboBox2.items.add("1")
    ComboBox2.items.add("2")
    ComboBox2.items.add("3")
ElseIf ComboBox1.text="b" then
    ComboBox2.items.clear()
    ComboBox2.SelectedIndex = -1
    ComboBox2.items.add("4")
    ComboBox2.items.add("5")
    ComboBox2.items.add("6")
ElseIf ComboBox1.text="c" then
    ComboBox2.items.clear()
    ComboBox2.SelectedIndex = -1
    ComboBox2.items.add("7")
    ComboBox2.items.add("8")
    ComboBox2.items.add("9")
Else
    ComboBox2.items.clear()
    ComboBox2.SelectedIndex = -1
End If