Combobox mit Enter-Taste bedienen (wie Maus-Klick)

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von rade23.

    Combobox mit Enter-Taste bedienen (wie Maus-Klick)

    Hallo zusammen,

    ich beschäftige mich jetzt seit 2-3 Monaten intensiv mit der VB-Programmierung, und bin nun auf folgendes Problem gestossen:

    Ich möchte ein Formular mit mehreren Text- und Comboboxen komplett mit der Tastatur benutzerfreundlich handhaben.
    Wenn ich mit Tab auf eine Combobox springe, möchte ich mit einem ersten Enter-Tastendruck die Combobox öffen, mit Pfeiltasten o.ä. ein Item auswählen und dann mit dem nächsten Enter-Tastendruck dei Combobox wieder schliessen. Also das Prinzip des Mausclicks übernehmen...
    Ich bekomm´s einfach nicht hin...Folgende 2 Codes laufen bis zur Mitte Prima, dann schliesst er die Combobox nur für einen Sekundenbruchteil und öffnet sie sofort wieder...

    ----------------------------------------------------
    Private Sub Keypress_ente(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles cboxNKL.KeyPress
    cboxNKL.DroppedDown = False
    Select Case e.KeyChar
    Case ChrW(Keys.Return)
    If cboxNKL.DroppedDown = False Then
    cboxNKL.DroppedDown = True
    ElseIf cboxNKL.DroppedDown = True Then
    cboxNKL.DroppedDown = False
    End If
    End Select
    End Sub
    ---------------------------------------------------
    Private Sub Keypress_ente(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles cboxNKL.KeyPress
    cboxNKL.DroppedDown = False
    If Keys.Return Then
    If cboxNKL.DroppedDown = False Then
    cboxNKL.DroppedDown = True
    ElseIf cboxNKL.DroppedDown = True Then
    cboxNKL.DroppedDown = False
    End If
    End If
    End Sub
    --------------------------------------------------

    Freue mich über jegliche Resonanz

    MfG

    rade23

    VB.NET-Quellcode

    1. Private Sub ComboBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles ComboBox1.KeyPress
    2. If e.KeyChar = Chr(13) Then
    3. ComboBox1.DroppedDown = Not ComboBox1.DroppedDown
    4. End If
    5. e.Handled = True
    6. End Sub

    Dein Problem ("Dann schliesst er die Combobox nur für einen Sekundenbruchteil und öffnet sie sofort wieder...") ist die Zuweisung an die DroppedDown-Eigenschaft.
    Wenn du diese auf true setzt, dann wird die Animation ausgelöst.
    Hey Kurt,

    ein fettes Dankeschön für die schnelle Antwort!!!

    Mit deinem Code klappt´s wunderbar, aber warum geht das nicht bei Style DropDownList?

    MfG

    rade23

    Das muss doch auch irgendwie gehen, wenn ich die Combobox auf DropDownList stelle!?!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „rade23“ ()

    Das muss doch auch irgendwie gehen, wenn ich die Combobox auf DropDownList stelle!?!

    Wenn ich einen Button belege:

    VB.NET-Quellcode

    1. Public Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. combobox1.DroppedDown = True
    3. End Sub


    ...dann klappt er beim ersten click die Liste auf und beim zweiten wieder zu. Genau was ich brauche!
    Aber wie bekomme ich das auf die Enter-Taste?

    Danke

    rade23

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „rade23“ ()