基于第一个组合框过滤其他组合框

时间:2012-06-03 10:00:23

标签: vb.net

如何根据第一个组合框中的其他组合框进行过滤,该组合框与其他组合框具有相同的数据。

我正在使用visual basic 2010和一个与代码连接的ms访问数据库。在vb表单上,我有五个组合框,所有组合框都填充了相同的数据:

Private Sub loadsubject()

    Dim OleDBC As New OleDbCommand
    Dim OleDBDR As OleDbDataReader
    With OleDBC
        .Connection = conn
        .CommandText = "SELECT subject FROM tblsubjectBA"
    End With
    OleDBDR = OleDBC.ExecuteReader
    cmbsub1.Items.Clear()
    cmbsub2.Items.Clear()
    cmbsub3.Items.Clear()
    cmbsub4.Items.Clear()
    If OleDBDR.HasRows Then
        While OleDBDR.Read
            cmbsub1.Items.Add(OleDBDR.Item(0))
            cmbsub2.Items.Add(OleDBDR.Item(0))
            cmbsub3.Items.Add(OleDBDR.Item(0))
            cmbsub4.Items.Add(OleDBDR.Item(0))
        End While
    End If
End Sub

数据是 “美国” “俄国” “中国” “印度” “非洲” “欧洲”

现在我想创建一个可以过滤其他共用框的代码,即

如果我从5的列表中选择“India”,就像在combobox1中提到的那样 其他4个组合框不得在列表中显示“印度”

然后

如果我从4列表中选择“Europe”,因为在combobox1中已经选择了1个名称,那么其他3个combox不能在列表中显示“india”和“Europe”

所有组合框都应该如此。

1 个答案:

答案 0 :(得分:1)

我不熟悉visual basic,但你应该为所有组合框实现一个选择更改事件,并在选择更改时从其他元素中删除相应的元素,并添加不再过滤的元素出。这是一个快速而肮脏的解决方案,但应该可行。