In neuer Forminstanz zeichnen

16/02/2009 - 13:13 von Josef Morlo | Report spam
Hallo allerseits,

VS 2005 Express

ich erstelle über einen Button eine neue Forminstanz mit New MyForm,
übergebe einige Werte und zeige die Form mit Show an. In der erstellten
Form sollen anhand der übergebenen Werte einige Zeichenoperationen getàtigt
werden.

ich habs so probiert:

Im aufgerufenen Form:

Sub DoDrawings(ByVal e As PaintEventArgs)
With e.Graphics
.DrawRectangle( ...)
.DrawLine (...)
End With
End sub

Sub MyForm_Paint(ByVal sender As Object, ByVal e As _
System.Windows.Forms.PaintEventArgs) Handles Me.Paint
DoDrawings(e)
End Sub


Mir ist nicht ganz klar, was da passiert: Die Zeichenoperationen werden
zweimal ausgeführt. Kann mir jemand bitte auf die Sprünge helfen?

Fragen:
Wie ginge man denn in solchen Fàllen am besten vor? Bekàme man das
e.Graphics-ObjeKt in die aufrufende Form?

Danke und Gruß

Josef Morlo
 

Lesen sie die antworten

#1 Peter Fleischer
16/02/2009 - 14:16 | Warnen spam
"Josef Morlo" schrieb im Newsbeitrag
news:aycdm4zz1jt.6hh2wbgeg0jq$

...
Sub DoDrawings(ByVal e As PaintEventArgs)
With e.Graphics
.DrawRectangle( ...)
.DrawLine (...)
End With
End sub

Sub MyForm_Paint(ByVal sender As Object, ByVal e As _
System.Windows.Forms.PaintEventArgs) Handles Me.Paint
DoDrawings(e)
End Sub

Mir ist nicht ganz klar, was da passiert: Die Zeichenoperationen werden
zweimal ausgeführt. Kann mir jemand bitte auf die Sprünge helfen?



Hi Josef,
das Paint-Ereignis wird von außen (Betriebssystem - Fensternachricht)
angestoßen, wenn es das Betriebssystem für nötig hàlt, z.B. wenn der
Container (MyForm) aktiviert wird und die Oberflàche neu zu zeichnen ist
oder wenn über dem Formular ein anderes Formular bewegt wird, und MyForm neu
aufzufrischen (zu zeichnen) ist.

Fragen:
Wie ginge man denn in solchen Fàllen am besten vor? Bekàme man das
e.Graphics-ObjeKt in die aufrufende Form?



In welchen Fàllen denn? Wo ist das zu lösende Problem?

Ein Graphics-Objekt gehört zu einem Context. Und dort sollte es auch genutzt
werden. An anderer Stelle könnte eine Nutzung zu nicht mehr beherrschbaren
Situationen führen. Der Vorteil der Kapselung besteht gearade darin, dass
Innereien und im wirklich benötigten Umfang außen bekannt gemacht werden.

Viele Grüsse
Peter

Ähnliche fragen