Ich benutze eine einfache ComboBox in C#. Ich habe 3 Elemente hinzugefügt: "Apfel", "Banane" und "Orange". Hier ist, was ich mache:
- Klicke auf die ComboBox, um das Dropdown-Menü anzuzeigen. Ich sehe alle 3 Elemente gut. Dann wähle ich "Banane" per Mausklick aus.
- Die ComboBox zeigt jetzt "Banane", was bis jetzt korrekt ist.
- Jetzt klicke ich erneut auf die ComboBox, um das Dropdown-Menü anzuzeigen. Ich bewege meine Maus, um "Orange" zu markieren. Dann drücke ich die TAB-Taste, um die ComboBox zu verlassen.
- Die ComboBox zeigt immer noch "Banane" an.
- Wenn ich jedoch das ausgewählte Element abrufe, ist es "Orange".
Ist dieses Verhalten erwartet? Wenn ich "Orange" markiere und aus dem Feld wechsel, würde ich erwarten, dass entweder:
- das ausgewählte Element gleich bleibt (was bedeutet, dass das Verlassen des Feldes keine Auswahländerung auslöst) oder...
- die ComboBox "Orange" anzeigen sollte, da die Auswahl geändert wurde
Ich überwinde dies, indem ich den comboBox.Leave
Ereignishandler verwende, um das Textfeld manuell auf das selectedItem
zu setzen. Ich möchte jedoch wissen, ob mir hier grundlegende Konzepte fehlen.
Es scheint logisch, dass wenn sich die Auswahl ändert, das comboBox.Text
dies ohne manuellen Eingriff widerspiegeln sollte?