Entwickler-Ecke

WinForms - Bild auf Form wird gelöscht !


Questioneer - Mo 27.10.08 11:39
Titel: Bild auf Form wird gelöscht !
Hi,

ich habe ein Bild au feine Form geblittet mittels dieses Codes :


C#-Quelltext
1:
2:
3:
4:
            Form frmPreview = new Form();
            Graphics dc = this.CreateGraphics();
            Image img = Image.FromFile(strPfad);
            dc.DrawImage(img, 50250);


also ohne PictureBox.
Wenn ich die Form nun verkleinere oder eine andere drüberschiebe wird das Bild teilweise oder ganz gelöscht.

Ich denken das liegt an eine fehlenden Autoredraw Eigenschaft oder so, könnt Ihr mich da in die richtige Richtung treten ?



Gruß und vielen Dank
Questioneer

Moderiert von user profile iconChristian S.: Code- durch C#-Tags ersetzt


Kha - Mo 27.10.08 13:47

Eine PictureBox hat den Vorteil, dass sie die Daten speichert und selbst neuzeichnet. Ohne PictureBox musst du jedes Mal im Paint-Eventhandler selbst neuzeichnen.


Questioneer - Mo 27.10.08 14:38

Danke Kha,

kannst Du mir zeigen wie ich an diesen Eventhandler komme und darin zeichnen kann ???


Gruß
Questioneer


JüTho - Mo 27.10.08 15:04

user profile iconQuestioneer hat folgendes geschrieben Zum zitierten Posting springen:
kannst Du mir zeigen wie ich an diesen Eventhandler komme

Ist diese Frage ernst gemeint? Gehe in die IDE in den Designer des Formulars, klicke das Formular an (kein spezielles Control, sondern wirklich das Formular), gehe in das Eigenschaften-Fenster, klicke auf den Blitz-Button (das öffnet die Liste aller Ereignisse), wähle das Paint-Ereignis, Doppelclick baut den Rumpf für den EventHandler.

user profile iconQuestioneer hat folgendes geschrieben Zum zitierten Posting springen:
und darin zeichnen kann ???

In diesen Rumpf kommt ungefähr Dein Code hinein; siehe das Beispiel in der SDK-Doku/MSDN unter Control.Paint-Ereignis.

Etwas mehr Eigeninitiative bitte! Jürgen


Questioneer - Mo 27.10.08 15:25

Danke Jütho,

bin noch Anfänger und PaintEvent klang nach hartem Tobak, aber nachdem Du's erklärt hast funzt das bestens !


Gruß
Questioneer