Label löst Paint Ereigniss aus

OP #4012307
Lesenswert?

Hallo!

Habe eine Windows_Forms Anwendung mit TabControl und einem Tab. Auf 
diesem Tab ist ein Panel und daneben einige Buttons. Wenn ich nun mit 
der Maus über die Buttons fahre wird jedes mal für das Panel das Paint 
Ereigniss ausgelöst. Da das Neuzeichnen recht aufwendig ist flackert es 
sehr doll. Weiss jemand wie ich das umgehen kann?
Programmierplattform ist Visual Studio C++/CLI.

VG Deepdiver99
#4012335
Lesenswert?

deep diver99 schrieb:
> Visual Studio C++/CLI.

Kenne ich leider nicht, bin daher nicht sicher, ob es das Richtige ist:
In Control-Eigenschaft Style die Flags AllPaintingInWmPaint und 
UserPaint auf TRUE (bzw. true) setzen, um Botschaft WM_ERASEBKGND zu 
unterdrücken und dadurch das Flimmern/Flackern zu vermindern.
https://msdn.microsoft.com/de-de/library/system.windows.forms.controlstyles(v=vs.110).aspx

Siehe Flag UserPaint: wenn FALSE, dann wird kein Paint-Event ausgelöst 
und das Neuzeichnen wird nicht mehr vom System erledigt. Ich vermute 
mal, daß dann die Anwendung selbst für das Neuzeichnen sorgen muß.
Gast #4012613
Lesenswert?

Habe es jetzt mal probiert, aber es kommt eine Fehlermeldung. "SetStyle" 
ist PRIVATE, kann daher nicht darauf zugreifen.

Form1.h(2282) : error C3767: 
"System::Windows::Forms::Control::SetStyle": Auf mögliche Funktion(en) 
kann nicht zugegriffen werden.

Noch eine andere Idee?
Gast #4012737
Lesenswert?

Habe die Lösung gefunden. Das Problem war der TAB auf dem das PANEL und 
die BUTTON's waren. Habe ein neuen TAB angelegt und die Steuerelemente 
darauf verschoben, und siehe da es wird kein PANEL_Paint_Event mehr 
ausgeöst wenn man mit der Maus über die Button's fährt.
Warum der "alte" TAB diese Problem gemacht hat kann ich mir nicht 
erklären. Habe alle Einstellungen von beiden TAB's verglichen, aber sie 
waren gleich.
#4013121
Lesenswert?

Deepdiver99 schrieb:
> Warum der "alte" TAB diese Problem gemacht hat kann ich mir nicht
> erklären.

Habe sowas früher auch erlebt, z.B. bei einer VB6-Demo nach ausgiebigem 
Herumprobieren im Fensterformular-Editor. In einem neuen Projekt ohne 
wildes Herumprobieren hat dann alles funktioniert.

> "SetStyle" ist PRIVATE, kann daher nicht darauf zugreifen.

Sorry! O.g. Link bezieht sich auf .NET Framework 4.5, aber die Sache mit 
den Style-Flags wäre wohl ohnehin nicht des Rätsels Lösung gewesen. LG

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren