Hallo miteinander
ich habe wiedermal ein Problem, das sich für mich nicht nachvollziehen lässt. Evtl. kann hier ein Profi mit Hintergrundwissen eine Aussage machen bzw. den Fehler begründen.
Ich hab in meiner Software eine Form, in der alle Einstellungen machbar sind. Die einzelnen Kategorien sind unterteilt und es gibt für jede Kategorie ein eigenes
Ich hab mal testweise ein Dummy-Projekt nachgebaut, mit dem man den Fehler reproduzieren kann (siehe Dateianhang).
Schritte zur Reproduktion des Fehlers:
Gibt es dafür eine logische Erklärung?
Ich muss/möchte für diese
EDIT: Ich hab das übrigens mit .NET 4.5 - 4.6.1 getestet, überall mit selbem Ergebnis.
ich habe wiedermal ein Problem, das sich für mich nicht nachvollziehen lässt. Evtl. kann hier ein Profi mit Hintergrundwissen eine Aussage machen bzw. den Fehler begründen.
Ich hab in meiner Software eine Form, in der alle Einstellungen machbar sind. Die einzelnen Kategorien sind unterteilt und es gibt für jede Kategorie ein eigenes
Panel
. In Summe sind das 59, die Anzahl spielt aber denke ich nicht so eine grosse Rolle, der Fehler lässt sich auch mit 2 Panel rekonstruieren. Auf diversen Panels gibt es ComboBoxen
, die entweder mit Strings
, also über Items.Add
gefüllt werden und solche, die ich über DataSource
fülle. Nur bei denen, die ich über DataSource
fülle, passiert der Fehler: nach einigen Wechsel der Panels sind die ComboBoxen
auf einmal wieder auf Index = 0
eingestellt. Dies geschieht genau in dem Moment, in dem ich die Panel wieder anzeigen lasse. Sprich wenn man nicht wieder den Button drückt, der das Panel anzeigt stimmen die Einstellungen noch und können auch korrekt gespeichert werden. Wenn man hingegen das Panel nochmals aufruft sind die Einstellungen zurückgesetzt.Ich hab mal testweise ein Dummy-Projekt nachgebaut, mit dem man den Fehler reproduzieren kann (siehe Dateianhang).
Schritte zur Reproduktion des Fehlers:
- Projekt starten; die 2 Panels werden angezeigt, im einen Panel sind zwei
ComboBoxen
, es ist jeweils ein EintragIndex > 0
ausgewählt - nun klickt man auf einen der Buttons, danach auf den anderen; hierbei werden die Panels ausgeblendet und beim Drücken des Buttons wieder im "Main" Panel angezeigt. So funktioniert das im Prinzip auch in meiner Software
- nun kann man ein paar mal abwechselnd die Buttons drücken, die Einstellungen bleiben dabei erhalten
- nun klickt man auf den Button "Dummy" und hällt danach die Enter-Taste mal für 10 Sekunden gedrückt. In der Zeit wird das Panel "pnlDummy" diverse Male entladen und wieder geladen. Der Wert der beiden
ComboBoxen
verändert sich dabei nicht, das lässt sich via Debugging in Zeile 57 feststellen. - drück man nun aber wieder den Button "Resolutions" und mach dabei ebenfalls ein Debug in Zeile 57, also genau zu dem Zeitpunkt, indem das Panel wieder angezeigt wird, stellt man fest, dass sich der Wert von
cbResolution
exakt in dem Moment aufIndex = 0
zurücksetzt. Dies passiert mit der anderenComboBox
nicht...
Gibt es dafür eine logische Erklärung?
Ich muss/möchte für diese
ComboBoxen
unbedingt die Enums
nutzen, da ich so die gespeicherten Einstellungen direkt im Code verwenden kann. Und wir sprechen hier von gut 40 Einstellungen, die so gespeichert werden.EDIT: Ich hab das übrigens mit .NET 4.5 - 4.6.1 getestet, überall mit selbem Ergebnis.