-1

我有两个相关的组合框。我的问题是当我从组合框 1 中选择项目时,我的组合框 2 项目不会重置/清除。相反,它会不断在组合框2 的底部添加/附加新项目。我在添加新项目之前尝试过 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
4

9 回答 9

4

不要做

ComboBox2.DataSource = Nothing

只需清除项目

ComboBox2.Items.Clear()
于 2013-03-18T04:36:09.693 回答
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

谢谢!

于 2013-03-18T04:34:59.383 回答
0
combobox1.SelectedIndex = -1

这是最好的方法

于 2014-10-06T08:38:29.583 回答
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。

于 2015-04-15T02:18:26.853 回答
0

利用

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

代替

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

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

于 2014-02-24T09:00:38.960 回答
0

而不是使用

ComboBox2.DataSource = NothingComboBox2.Items.Clear()

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

于 2013-03-18T09:17:47.357 回答
0

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

if isnothing(combobox1.Datasource) then
*write your code to populate here
end if.
于 2015-09-14T00:11:59.960 回答
0

combo2_selectedIndedChange请在活动下方写下以下代码

If Not IsNothing(ds.Tables("cbBrgy")) Then
                ds.Tables("cbBrgy").clear()
            End If
            ComboBox2.DataSource = Nothing
            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"
于 2021-06-23T05:42:50.490 回答
-1

按照这个,

ComboBox.Text = 无

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

于 2014-02-24T10:48:32.393 回答