Freihandkurve erstellen

Funktionsbeispiel



'Freihandkurve erstellen
'Importierung der Klasse:
 
System.Drawing.Drawing2D
Dim Pt As New Point
Dim Grp As New GraphicsPath
 
'Neue Freihandkurve erstellen
Private Sub Freihandkurve_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseDown
  If Me.MouseButtons = MouseButtons.Left Then 'Neue Grafik zeichnen
  Me.Cursor = Cursors.Cross 'Cursor für Zeichenvorgang wechseln
  Pt = New Point(e.X, e.Y)
  Grp.StartFigure()
  End If
 
  If Me.MouseButtons = MouseButtons.Right Then 'Komplette Grafik löschen
    If MsgBox("Möchten Sie die Grafik wirklich löschen", MsgBoxStyle.YesNo, "Grafik löschen") = MsgBoxResult.Yes Then
    Grp.Reset() 'Inhalt aus GraphicsPath entfernen
    Me.Refresh()
    End If
  End If
End Sub
 
 
Private Sub Freihandkurve_MouseUp(ByVal sender As Object, ByVal e
As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseUp
  Me.Cursor = Cursors.Default 'DefaultCursor anzeigen
End Sub
 
 
'Grafik beim bewegen der Maus erstellen
Private Sub Freihandkurve_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseMove
  Dim Grfx As Graphics
  Dim PtF As New Point(e.X, e.Y)
 
  If Me.MouseButtons = MouseButtons.Left Then
    Grfx = Me.CreateGraphics
    Grfx.DrawLine(New Pen(Color.Green), Pt, PtF)
    Grfx.Dispose()
    Grp.AddLine(Pt, PtF)
    Pt = PtF
  End If
End Sub
 
 
'Beim löschen des Fensterinhaltes, Grafik neu zeichnen
Private Sub Freihandkurve_Paint(ByVal sender As Object, ByVal e
As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
  e.Graphics.DrawPath(New Pen(Color.Green), Grp)
End Sub