Toolstripcombox löst Selectededindexchanged schon beim Binden aus

  • VB.NET
  • .NET (FX) 4.0

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Schoofi.

    Toolstripcombox löst Selectededindexchanged schon beim Binden aus

    Ich habe eine Toolstripcombobox an eine Datentabelle eine typisierten Datasets gebunden.

    VB.NET-Quellcode

    1. Dim dtNutzer As dsMA_Rechner.tbl_NutzerDataTable = MARechner.tbl_Nutzer
    2. With Me.tspcboNutzeranzeigen.ComboBox
    3. .DataSource = MARechner.tbl_Nutzer
    4. .DisplayMember = dtNutzer.NutzernameColumn.ColumnName
    5. .ValueMember = dtNutzer.ID_NutzerColumn.ColumnName
    6. .Sorted = True
    7. End With

    Allerdings wird das Ereignis SelectedIndexChanged bereits bei der Zuordnung der Datasource ausgelöst und läuft folglich auf eine Exception.
    Was mache ich falsch ?

    VB.NET-Quellcode

    1. Private Sub tspcboNutzeranzeigen_SelectedIndexChanged(sender As Object, e As EventArgs) Handles tspcboNutzeranzeigen.SelectedIndexChanged
    2. If Me.tspcboNutzeranzeigen.ComboBox.SelectedIndex > -1 Then
    3. Dim dtrowNutzer As dsMA_Rechner.tbl_NutzerRow = MARechner.tbl_Nutzer.FindByID_Nutzer(CInt(Me.tspcboNutzeranzeigen.ComboBox.SelectedValue))
    4. Using frmNutzer As New frm_Nutzer(frm_Nutzer.Programm.Info)
    5. With frmNutzer
    6. .clsLogdatei = clsLogdatei
    7. .dtRowNutzer = dtrowNutzer
    8. .Nutzeranzeigen()
    9. .FormBorderStyle = Windows.Forms.FormBorderStyle.FixedSingle
    10. .ShowDialog()
    11. End With
    12. End Using
    13. End If
    14. End Sub
    combox löst Selectededindexchanged schon beim Binden aus

    Das stimmt in der Tat so.

    Schoofi schrieb:

    Handles tspcboNutzeranzeigen.SelectedIndexChanged

    würde ich weglassen, und NACH

    VB.NET-Quellcode

    1. With Me.tspcboNutzeranzeigen.ComboBox
    2. ...
    3. End With

    einfügen:

    VB.NET-Quellcode

    1. Addhandler tspcboNutzeranzeigen.SelectedIndexChanged, AddressOf tspcboNutzeranzeigen_SelectedIndexChanged

    Das ist ein gängiger Workaround für dieses bekannte Problem.