Entwickler-Ecke
WinForms - Control beim 'Ausfahren' grau
erfahrener Neuling - Fr 03.06.16 08:59
Titel: Control beim 'Ausfahren' grau
Hallo,
ich habe ein Panel mit einer Groupbox drauf. Wenn ich eine CheckBox aktiviere, ändert sich die Panel-Height schrittweise von 0 auf 200 (es fährt sich sozusagen aus). Nur ist die Groupbox beim Ausfahren ziemlich grau und flackert leicht.
beim Ausfahren:
danach:
Die Panel Struktur sieht so aus:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| |------------------------------------| | TopPanel; Dock=Top | |------------------------------------| | FilterPanel(das Problem); Dock=Top | |------------------------------------| | ListViewPanel; Dock=Fill | | | | | | | | | |------------------------------------| |
Als ich es noch nicht mit dem autom. Anpassen des ListViewPanel per Fill-Dock, sah es besser aus, aber es gab Probleme mit der Größenanpassung.
Also Frage: Wie kann ich diese Graufärbung der Groupbox während des Ausfahrens vermeiden? Gibt es vielleicht Methoden/Controls, mit dem man dass besser lösen könnte?
Gruß Julian
dankbar für jede Hilfe.
erfahrener Neuling - Fr 03.06.16 09:28
Danke richtige Antwort ;) Nach so einer Methode hab ich eh schon für 'zig andere Sachen gesucht
PS: ja mit der Zeit stimmt schon, hatte da an ein Timer-Tick-Event gedacht, da die Geschwindigkeit per Schleife ja ziemlich Random ist.
PPS: Danke die Library werd ich mir mal im Hinterkopf behalten. Hab nur momentan keine Zeit dafür ;)
Palladin007 - Fr 03.06.16 09:46
| Zitat: |
| PS: ja mit der Zeit stimmt schon, hatte da an ein Timer-Tick-Event gedacht, da die Geschwindigkeit per Schleife ja ziemlich Random ist. |
Und den UI-Thread für die komplette Animation blockiert ;)
erfahrener Neuling - Fr 03.06.16 10:30
Th69 hat folgendes geschrieben : |
| Bloß nicht Application.DoEvents benutzen |
Was kann denn passieren, wenn ich das bloß in einem Event habe, um die Groupbox neu zu zeichen?
| Zitat: |
| Am besten einen Timer dafür benutzen! |
Ja das wollt ich auch machen.
Th69 - Fr 03.06.16 11:04
Das generelle Problem dabei ist, daß während ein Ereignis ausgeführt wird mittels Application.DoEvents weitere Ereignisse (evtl. rekursiv) aufgerufen werden.
Und in dem Link von mir wird noch auf einen Fall verwiesen, wenn man währenddessen dann das Programms schließt (was ja dann durch Application.DoEvents ausgeführt wird), danach dann evtl. auf schon freigegebene Controls weiter zugegriffen wird...
erfahrener Neuling - Fr 03.06.16 11:28
Habe das Problem jetzt anders gelöst, unzwar ganz einfach: this.groupBoxFilter.Refresh() Jetzt muss ich nur noch an der Geschwindigkeit rumbasteln, dann passt's
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!