4 Stimmen

C# System.Windows.Forms.ComboBox Text wird nach einer Änderung der Auswahl nicht aktualisiert

Ich benutze eine einfache ComboBox in C#. Ich habe 3 Elemente hinzugefügt: "Apfel", "Banane" und "Orange". Hier ist, was ich mache:

  1. Klicke auf die ComboBox, um das Dropdown-Menü anzuzeigen. Ich sehe alle 3 Elemente gut. Dann wähle ich "Banane" per Mausklick aus.
  2. Die ComboBox zeigt jetzt "Banane", was bis jetzt korrekt ist.
  3. 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.
  4. Die ComboBox zeigt immer noch "Banane" an.
  5. 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:

  1. das ausgewählte Element gleich bleibt (was bedeutet, dass das Verlassen des Feldes keine Auswahländerung auslöst) oder...
  2. 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?

1voto

xpda Punkte 15262

Ich glaube, du hast es richtig herausgefunden. In einem ComboBox muss das ausgewählte Element nicht mit dem Text übereinstimmen. Dadurch können Nicht-Elemente im Text des ComboBox eingegeben werden. Du kannst einfach das SelectedItem ignorieren und das Textfeld verwenden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X