Entwickler-Ecke
WinForms - In einem Formular zeichnen und erst dann modal anzeigen
RalphHoffmann - Di 08.09.15 14:27
Titel: In einem Formular zeichnen und erst dann modal anzeigen
Hallo und guten Tag @ all :D
Ich erstelle mit folgendem Code ein Formular, dem ich ein paar Eigenschaften mitgebe. Zuletzt will ich zeichnen und dann das Formular modal anzeigen lassen. Es erscheint jedoch kein gefülltes Rechteck? Warum? Ich lasse die Ausführung des Codes (da gehört noch mehr dazu) in dieser Methode stoppen und gehe in Einzelschritten weiter. Dort sehe ich dann, dass die Zeichenfläche besorgt wird und auch, dass der 'musterPinsel' definiert ist.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| private void infoToolStripMenuItem_Click(object sender, EventArgs e) { Form frmInfo = new Form();
frmInfo.FormBorderStyle = FormBorderStyle.Fixed3D; frmInfo.MaximizeBox = false; frmInfo.MinimizeBox = false; frmInfo.Text = "Stil - Info";
Graphics zfInfo; zfInfo = frmInfo.CreateGraphics();
zfInfo.FillRectangle(musterPinsel,10,10,10,10);
frmInfo.ShowDialog();
... } |
Gruß
Ralph
Moderiert von
Th69: Code- durch C#-Tags ersetzt
Ralf Jansen - Di 08.09.15 14:40
Die Oberfläche wird regelmäßig neu gezeichnet mit dem was das Control definiert und/oder das was du im OnPaint Ereignis hinzufügst.
ShowDialog löst ein erstes zeichnen aus und in diesem Zeichnen ist dein FillRectangle nicht enthalten da es nicht in OnPaint stattfindet.
Zeichnen auf ein Control ist keine einmalige dauerhafte Sache. Die Fläche eines Controls mußt du jedesmal zeichnen/neuzeichnen wenn diese Fläche ungültig wird (warum das auch immer passiert ist). Einmal irgendwas auf die Fläche zeichnen und hoffen das das bei jeder Änderung verwahrt wird funktioniert nicht. Du mußt das zeichnen vom OnPaint Ereignis aus erledigen. Wenn das aus irgendeinem Grund zu lange dauert weil sehr komplex oder so dann kannst du das was du da zeichnest zuerst in irgendein Bitmap zeichnen und dann in OnPaint in das Graphics Object kopieren (per DrawImage z.B.).
RalphHoffmann - Di 08.09.15 17:17
Hallo Ralf,
danke für Deine Hilfe. Ich habe parallel auch weiter gegoogelt und inzwischen gleiche Infos gefunden :!: :D
Werde ich mich jetzt mal mit diesem OnPaint auseinander setzen.
Gruß
Ralph
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!