Autor Beitrag
C#David
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 39



BeitragVerfasst: Di 29.05.18 09:53 
Hey Leute,

ich arbeite an einem Programm, in welchen beim Laden einer Form ein bestimmtes geometrischen Element (z.B. ein Rechteck) gezeichner werden soll. Dazu habe ich ein "Panel" in der Form platziert und alle notwendigen Funktionsaufrufe zum Zeichnen in der Funktion "private void Form5_Load(object sender, EventArgs e)" untergebracht. Leider tut sich beim Laden überhaupt nichts...wenn ich hingegen das Klick-Event "private void panel2_Click(object sender, EventArgs e)" einfüge, wird es nach einmaligen Anklicken des Panels gezeichnet. Was mache ich verkehrt? Besten Dank!

Moderiert von user profile iconTh69: Titel geändert (war "Laden einer Form").
Moderiert von user profile iconTh69: C#-Tags hinzugefügt
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Di 29.05.18 10:00 
Zeichnen gehört in den jeweiligen Paint Event des Controls auf dem du zeichnen willst. Hier also in den Paint Event deines Panels.

Windows wird regelmäßig ein neuzeichnen einer Form aus Gründen ausführen. Dann wird der "Zeichnen"-Code jedes einzelnen Controls ausgeführt(dessen Paint Logik die auch den Paint Event ausführt). Da dein Code in Load bzw. dem ButtonClick entweder zu früh oder zu selten passiert und schon gar nicht wenn wieder mal ein neuzeichnen nötig ist siehst du das Verhalten das du da siehst.

Für diesen Beitrag haben gedankt: C#David
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Di 29.05.18 11:23