C Sharp - PictureBox flackert beim Bewegen, wieso?

Hallo Leute,

seid ungefähr einem halben Jahr programmiere ich mit C#.
Ich bin Azubi und arbeite gerade ein schönes dickes Lehrbuch durch(C# von Kopf bis Fuß)^^

Ich hatte vor kurzem mit einem Workshop angefangen und ihn auch erfolgreich beendet.

Es handelt sich um 1 Adventure Spiel in dem man Level für Level als Held seine Gegner besiegt und neue gegenstände einsammeln kann.

Mein Problem ist, dass wenn sich die PictureBoxen der Gegner und des Helden bewegen, flackert es kurz. Wie kann ich das beheben?

Hallo Wayne_300

Der Inhalt der Picturebox muss natürlich nach jedem Move neu gezeichnet
werden. Je nach Leistungsfähigkeit deines Systems kann ein paar
Millisekunden mehr dauern. Und dann flackert es halt. In Progessbars
sieht man das von Zeit zu Zeit oder auch wenn du dein Formular neu
zeichnen läßt. Das ganze Formular-Steuerelemente-System ist nicht auf
die Darstellung sich bewegender Inhalte hin aufgebaut.
Ich fürchte also das du damit leben musst.

Wie auch immer. Ich bin auch nur ein Mensch. Wenn ich mich also irren
sollte und es eine Lösung gibt, so sei doch so nett und teile sie mir mit.

Viele Grüße
Norman

Hi,

ein paar mehr Informationen dazu, wie das ganze System mit den PictureBoxes arbeitet, wäre natürlich hilfreich, aber spontan würde ich vermuten, dass sich die Redraws der PictureBoxes mit dem Refresh des Monitors kreuzen.

Einfachste Lösung wäre, bei deinem Formular das DoubleBuffering zu aktivieren. Das sorgt dafür, dass alles zunächst in eine Bitmap statt direkt auf das Formular gezeichnet wird. Diese Bitmap wird dann in einem Stück gezeichnet, was Probleme mit dem Refresh des Monitors verhindert.

Davon abgesehen konnte ich in einem schnellen Test das Flackern bei mir (auch ohne DoubleBuffering) nicht reproduzieren. Kann also durchaus sein, dass es auch an etwas anderem liegt.
Da müsstest du dann noch ein paar mehr Infos posten.

Greetings

P.S.: Falls du das Projekt ernsthaft weiterverfolgen willst, würde ich dir empfehlen, auf eine echte Graphik-API umzusteigen.

Ich programmiere bisher nicht in C#…