vb.net清除组合框项目

时间:2013-03-18 03:09:03

标签: vb.net combobox

我有两个相关的组合框。我的问题是我的combobox2项目不会重置/清除,因为我从combobox1中选择项目。相反,它不断添加/追加新的项目在combobox2的底部。我在添加新项目之前尝试了ComboBox2.DataSource = NothingComboBox2.Items.Clear(),但仍然不清楚它。

Private Sub ComboBox1_Validated(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.Validated
    ComboBox2.DataSource = Nothing
    ComboBox2.Items.Clear()
    ComboBox2.Items.Remove(ComboBox2.DisplayMember)
    sql = "select brgyname,idbrgy from barangay where idmun=" & ComboBox1.SelectedValue.ToString
    da = New Odbc.OdbcDataAdapter(sql, con)
    da.Fill(ds, "cbBrgy")
    ComboBox2.DataSource = ds.Tables("cbBrgy")
    ComboBox2.DisplayMember = "brgyname"
End Sub

9 个答案:

答案 0 :(得分:4)

不要做

ComboBox2.DataSource = Nothing

只需清除项目

即可
ComboBox2.Items.Clear()

答案 1 :(得分:1)

使用

ds.Tables("cbBrgy").Rows.Clear()

而不是

ComboBox2.DataSource = Nothing
ComboBox2.Items.Clear()

但请确保ds.Table("cbBrgy")在使用该行之前不是Null

答案 2 :(得分:0)

试试这个......将你的方法改为......

 Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
     ComboBox2.Items.Clear()
     sql = "select brgyname,idbrgy from barangay where idmun=" & ComboBox1.SelectedValue
     da = New Odbc.OdbcDataAdapter(sql, con)
     da.Fill(ds, "cbBrgy")
     ComboBox2.DataSource = ds.Tables("cbBrgy")
     ComboBox2.DisplayMember = "brgyname"
 End Sub

谢谢!

答案 3 :(得分:0)

而不是使用

ComboBox2.DataSource = NothingComboBox2.Items.Clear()

使用,ds.Tables("cbBrgy").Rows.Clear()

答案 4 :(得分:0)

combobox1.SelectedIndex = -1

这是最好的方式

答案 5 :(得分:0)

If Not IsNothing(ds.Tables("cbBrgy")) Then
    ds.Tables("cbBrgy").clear
End If

sql = "select brgyname,idbrgy from barangay where idmun=" & ComboBox1.SelectedValue
da = New Odbc.OdbcDataAdapter(sql, con)
da.Fill(ds, "cbBrgy")
ComboBox2.DataSource = ds.Tables("cbBrgy")
ComboBox2.DisplayMember = "brgyname"

首先处理表格,然后再次填充表格,然后再次将其设置为DataSource。

答案 6 :(得分:0)

首先检查数据源是否有值。 例如:

if isnothing(combobox1.Datasource) then
*write your code to populate here
end if.

答案 7 :(得分:0)

请将以下代码写在:- combo2_selectedIndedChange 事件

If Not IsNothing(ds.Tables("cbBrgy")) 然后 ds.Tables("cbBrgy").clear() 万一 ComboBox2.DataSource = 无 ComboBox2.Items.Clear()

        Sql = "select brgyname,idbrgy from barangay where idmun=" & ComboBox1.SelectedValue
        da = New Odbc.OdbcDataAdapter(Sql, Con)
        da.Fill(ds, "cbBrgy")
        ComboBox2.DataSource = ds.Tables("cbBrgy")
        ComboBox2.DisplayMember = "brgyname"

答案 8 :(得分:-1)

按照这个,

  

ComboBox.Text = Nothing

这足以清除组合框中的值。