在Form上的每个组合框中都会发生SelectedIndexChanged事件

时间:2017-02-07 07:56:33

标签: vb.net combobox

我正在研究VB.NET windows应用程序。

我在表单上添加了三个组合框。问题是,如果我改变 one-combo-box的索引,即该组合框发生SelectedIndexChanged事件,

但同时SelectedIndexChanged事件发生在该表单上存在的每个其他组合框中。

问题是什么,我很困惑,我错过了什么?

 Private Sub LoadBenNamesInComboBox()
        DataLoaded = False
        Dim oBenname As New BenDetails
        oBenname.LoadAll()


        cmbNEFTBenNames.DataSource = oBenname
        cmbNEFTBenNames.DisplayMember = "NameOfBen"
        cmbNEFTBenNames.ValueMember = "ID"

        cmbRTGSBenNames.DataSource = oBenname
        cmbRTGSBenNames.DisplayMember = "NameOfBen"
        cmbRTGSBenNames.ValueMember = "ID"

        cmbIMPSBen.DataSource = oBenname
        cmbIMPSBen.DisplayMember = "NameOfBen"
        cmbIMPSBen.ValueMember = "ID"

        DataLoaded = True

    End Sub

     Private Sub cmbNEFTBenNames_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbNEFTBenNames.SelectedIndexChanged

    End Sub

    Private Sub cmbIMPSBen_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbIMPSBen.SelectedIndexChanged

    End Sub


    Private Sub cmbRTGSBenNames_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbRTGSBenNames.SelectedIndexChanged

    End Sub

1 个答案:

答案 0 :(得分:2)

这是因为您使用组合框数据源属性将下拉框绑定回数据源。

当您在其中一个下拉列表中选择一个值时,它会自动将其他值更新为相同的值。

相反,您可以将数据源设置为oBenName对象的副本或数组。

e.g。如果BenDetails是LIST或使用ToArray功能的东西,你可以这样做:

 Private Sub LoadBenNamesInComboBox()
    DataLoaded = False
    Dim oBenname As New BenDetails
    oBenname.LoadAll()


    cmbNEFTBenNames.DataSource = oBenname.ToArray
    cmbNEFTBenNames.DisplayMember = "NameOfBen"
    cmbNEFTBenNames.ValueMember = "ID"

    cmbRTGSBenNames.DataSource = oBenname.ToArray
    cmbRTGSBenNames.DisplayMember = "NameOfBen"
    cmbRTGSBenNames.ValueMember = "ID"

    cmbIMPSBen.DataSource = oBenname.ToArray
    cmbIMPSBen.DisplayMember = "NameOfBen"
    cmbIMPSBen.ValueMember = "ID"

    DataLoaded = True

End Sub