Press Enter Event bei ComboBox

  • VB.NET

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

    Press Enter Event bei ComboBox

    Hallo,

    ich hab mal wieder eine Frage. Ich lass eine Combobox mit Daten füllen. Nun wollte ich statt mit dem DropDownEvent, einfach mit Keypress (Enter) das gleich ermöglichen. (Nummer auswählen und in TextBox erscheint der Name)

    Nun dachte ich es wäre einfach so aber wenn ich dann die MA Nummer eintrage und Enter drücke, kommt in der TextBox (die über das DataBinding verbunden ist) nicht der korrekte Name des MA (immer nur der erste Eintrag).
    Wenn ich aber das DropDownEvent verwende schon. Was muss ich anders machen um den selben Effekt zu erhalten?

    VB.NET-Quellcode

    1. Private Sub mcb_manummer_DropDown(sender As Object, e As EventArgs) Handles mcb_manummer.DropDown
    2. OrthesenDS.Mitarbeiter.Clear()
    3. mcb_manummer.DataBindings.Clear()
    4. OrthesenDS.Mitarbeiter.ReadXml(MA)
    5. End Sub


    VB.NET-Quellcode

    1. Private Sub mcb_manummer_Keydown(sender As Object, e As KeyEventArgs) Handles mcb_manummer.KeyDown
    2. If e.KeyCode = Keys.Enter Then
    3. OrthesenDS.Mitarbeiter.Clear()
    4. mcb_manummer.DataBindings.Clear()
    5. OrthesenDS.Mitarbeiter.ReadXml(MA)
    6. End If
    7. End Sub
    Dann prüf doch erstmal, ob sich mcb_manummer.Text in der Datenquelle befindet:
    Wenn nicht, raus aus der Sub:

    VB.NET-Quellcode

    1. If DataSetName.DataTableName.FirstOrDefault(Function(x) x.Zeilenname = Integer.Parse(mcb_manummer.Text)) Is Nothing Then Exit Sub

    DataSetName und DataTableName passend ersetzen
    Zeilenname: eben so, wie die Zeile mit der MA-Nummer in der DataTable heißt (z.B. Mitarbeiternummer), aber da hilft Dir IntelliSense
    Integer.Parse: Oder eben so passend konvertieren, dass es zum Datentyp der Mitarbeiternummer passt.
    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.
    Das komische ist ich kann z.B. die 501 als MANummer auswählen (DropDown) aber sobald ich sie manuell eintragen will und Enter drücke, wird die erste Nummer in der Auflistung eingetragen (in dem Fall die 718) und keine Andere.
    Somit vermute ich, dass es an der Datenquelle dran ist, oder?
    Wie hast Du denn die Cbx an die Bs gebunden?

    Schon so, oder?

    EDIT: Probier das Testprojekt mal
    Dateien
    • WindowsApp1.zip

      (532 kB, 65 mal heruntergeladen, zuletzt: )
    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.

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

    Das wär an sich schon ok, wenn der Kontext stimmt. Heißt bei Dir eben soviel wie: Das, was angezeigt wird, könnte über mcb_manummer.SelectedValue abgegriffen werden.
    Hm. Kannst Du ein entsprechendes Testprojekt hochladen? Datenquelle braucht man nicht, da man das DataSet ja selber befüllen kann.
    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.