Dialog schließen mit Doppelklick auf Listbox-Eintrag

  • VB.NET

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

    Dialog schließen mit Doppelklick auf Listbox-Eintrag

    Moin !

    ich habe einen Dialog mit einem Listbox-Control und wenn ein Doppelklick auf einen Eintrag erfolgt, dann soll dieser Wert ermittelt werden und im Anschluss der Dialog geschlossen werden.

    Mein Code sieht derzeit so aus:

    VB.NET-Quellcode

    1. Private Sub ListBox_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox.SelectedIndexChanged
    2. Dim Status As Boolean = False
    3. With ListBox
    4. For x As Integer = 0 To .Items.Count - 1
    5. If .GetSelected(x) = True Then
    6. Status = True
    7. Exit For
    8. End If
    9. Next
    10. End With
    11. bt_ok.Enabled = Status
    12. End Sub
    13. ''' <summary>
    14. ''' einzelne Auswahl - Doppelklick für die Auswahl und Übernahme
    15. ''' </summary>
    16. Private Sub ListBox_DoubleClick(sender As Object, e As EventArgs) Handles ListBox.DoubleClick
    17. Dim Status As Boolean = False
    18. With ListBox
    19. For x As Integer = 0 To .Items.Count - 1
    20. If .GetSelected(x) = True Then
    21. Status = True
    22. Exit For
    23. End If
    24. Next
    25. End With
    26. bt_ok.Enabled = Status
    27. Me.DialogResult = Windows.Forms.DialogResult.OK
    28. Me.Close()
    29. End Sub


    Was mich wundert ist, dass die erste Funktion ausgeführt wird und ListBox_DoubleClick nicht.

    Kann mir einer weiterhelfen nach dem warum?

    Gruß Jan
    @jan99 Vor dem Doppelklick-Ereignis kommt stets das Single-Click-Ereignis, hier also .SelectedIndexChanged.
    ListBox.SelectedIndex ist übrigens das selektierte Item, Du musst es nicht suchen.
    Wenn Du in die Prozedur ListBox_DoubleClick() einen Haltepunkt rein setzt, kommt er da an?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Also bei mir klappt der Code problemlos, inkl. Doppelklick.
    @RodFromGermany: Das stimmt nur bedingt. Wenn der SelectionMode auf MultiExtended eingestellt ist, reagiert der Code so, dass, wenn mindestens ein Item (also: irgendeins) selektiert ist, wird der Button zugänglich. Wenn nichts selektiert ist, wird er deaktiviert. SelectionChanged greift ja auch bei Delektierung der Items per Strg+Mausklick.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.