Problem mit ComboBox.DropDownStyle=DropDownList

mdo

Mitglied
Hallo!

Ich suche jetzt schon seit 2 Tagen nach einer Lösung für mein kleines Problem und fange langsam an zu glauben, dass Microsoft da ein defektes Element gebaut hat. Aber naja, meistens liegt der Fehler bei einem selbst... Also frage ich mal die Community nach einer Lösung für folgenden Bug(?):

Ich habe ein leeres Form mit einer ComboBox. DropDownStyle habe ich auf DorpDownList gestellt, um zu verhindern, dass der User selbst Eingaben vornehmen kann.
Als Items habe ich einfach die Zahlen von 1-10 angegeben und den SelectedIndex auf 0 gestellt.

Starte ich nun das Programm, so steht in der Headerzeile der ComboBox eine 1. Klicke ich nun auf die Combox, so bleibt die 1 im Header stehen und die Zahlen von 1 bis 10 klappen nach unten aus, wobei die 1 markiert ist. Soweit ist alles ok! Aber jetzt kommts:

Wenn ich den Klick ausführe und unmittelbar danach die Maus nach unten auf ein Item, sagen wir mal die 5, ziehe, so kommt es vor, dass diese Aktion scheinbar schneller als die interne Logik der ComboBox ist... Denn: Im Headerfeld steht plötzlich die 5(!) und nicht mehr die 1, wie es sein sollte. Dieses Verhalten ist eigentlich unkritisch, da das SelectedItem dadurch nicht verändert wird, aber es ist doch schon sehr irritierend, wenn im Header plötzlich nicht mehr das SelectedItem angezeigt wird...

Kennt jemand dieses Verhalten?

Zielframework ist übrigens .NET 2.0. Und mit der Einstellung "Popup" im Flatstyle der Combox lässt sich das Verhalten übrigens korrigieren, allerdings ist das für mich keine Alternative. Flatstyle sollte auf Standard bleiben...

Danke,
mdo
 
Hallo,

Wenn ich den Klick ausführe und unmittelbar danach die Maus nach unten auf ein Item, sagen wir mal die 5, ziehe
Also wenn ich auf einen Eintrag in der ComboBox klicke, dann geht bei mir die DropDown Box mit den Auswahlmöglichkeiten sofort wieder zu.
Ich hab da garnicht die Möglichkeit auf ein anderes Item zu gehen.

Habs mit .NET 2.0 (VS2005) und .NET 4.0 (VS2010) getestet.

Bleibt das DropDown Menü bei dir auf nach einem Klick?
 
Hallo!

Da gibt es wohl ein kleines Missverständnis. Ich Klicke nicht auf ein Item in der DropDownList, sondern ziehe nur den Mauszeiger darüber. Also:

Programm starten
Klick auf die Combobox
Noch während die DropDownList am ausfahren ist, ziehe ich nun den Mauszeiger auf ein anderes Item

Ergebnis:
In den meisten Fällen hat sich nun, ohne ein Klick auf ein Item gemacht zu haben, der Text der ComboBox verändert.
 
Immerhin konntest du es reproduzieren... Eine zufriedenstellende Lösung gibts aber wohl nicht. Man kann, wie gesagt mit dem Flatstyle "Popup" dieses Verhalten vermeiden. Allerdings erkauft man sich das ziemlich teuer... Denn Popup bringt auch so seine Problemchen mit sich (zB ne schlechte Performanz)
Nun gut, ich denke mal, hierbei wirds bleiben. Vielleicht fällt jemandem ja noch was schlaues dazu ein... Wenn nicht, bleibts wohl ungelöst.
Aber danke für deine Beteiligung :)
 
Da wird sich aber von Microsofts Seite her nichts mehr tun, wenns wirklich ein Bug ist.
WinForms werden nicht mehr weiterentwickelt.
Oberflächen werden in Zukunft mit WPF etc. erstellt.
 

Neue Beiträge

Zurück