Methodenaufruf. Welches Argument angeben?

29/09/2007 - 00:37 von Robert Hauffe | Report spam
Hallo,

ich habe foldendes Problem zum Methodenaufruf:

Public Sub Behaelter_MouseUp(Byval sender As System.Object, Byval e As
Mouseeventargs) 'wird mittels Addhandler aufgerufen
Zeichne_Linie()
End Sub
Public Sub Zeichne_Linie(Byval e As PaintEventArgs)
e.Graphics.DrawLine(New Pen(Color.Blue, 3), MausPos, New
Point(Form1.Panelp1.PointToClient(Control.MousePosition)))
End Sub

VB erwartet jetzt bei "Zeichne_Linie()" ein Argument für e. Allerdings
habe ich keine Ahnung was ich da reinschreiben soll. Kann mir jemand
einen Tipp geben?

Ich hab es auch schon ohne das "Byval e As PaintEventArgs" versucht:

Public Sub Behaelter_MouseUp(Byval sender As System.Object, Byval e As
Mouseeventargs)
Zeichne_Linie()
End Sub
Public Bub Zeichne_Linie()
System.Drawing.Graphics.DrawLine(New Pen(Color.Blue, 3), MausPos,
New Point(Form1.Panelp1.PointToClient(Control.MousePosition)))
End Sub

Das funktioniert aber nicht, da die Graphics Klasse keine freigegebenen
Member hat, sprich keine Methoden, die ohne Instanzierung aufgerufen
werden können.

Robert
 

Lesen sie die antworten

#1 Armin Zingler
29/09/2007 - 00:42 | Warnen spam
"Robert Hauffe" schrieb
VB erwartet jetzt bei "Zeichne_Linie()" ein Argument für e.
Allerdings habe ich keine Ahnung was ich da reinschreiben soll. Kann
mir jemand einen Tipp geben?



Also zum Zeichnen brauchst du erst mal nur ein Graphics-Objekt:

Public Sub Zeichne_Linie(Byval g As Graphics)
g.DrawLine(New Pen(Color.Blue, 3), MausPos, New
Point(Form1.Panelp1.PointToClient(Control.MousePosition)))
End Sub


Wenn du außerhalb des Paint-Ereignisses zeichnen willst:

dim g as graphics

g = Control.Creategraphics
zeichne_linie(g)
g.dispose

Wobei du bei "Control" das Control einsetzen musst, auf dem du zeichnen
willst.

Zeichne_Linie kannst du auch im Paint-Ereignis des Controls aufrufen, indem
du e.graphics übergibst.


Armin

Ähnliche fragen