Hi,
ich möchte auf einem Panel zeichnen. Und zwar freihand. Nachfolgender Code geht schon in die richtige Richtung, es gibt aber ein Problem:
Wenn man den Cursor zu schnell bewegt, dann werden die Abstände zwischen den Koordinaten zu groß.
Als resultat wird die Linie nicht richtig durchgezogen (siehe unten).
ich möchte auf einem Panel zeichnen. Und zwar freihand. Nachfolgender Code geht schon in die richtige Richtung, es gibt aber ein Problem:
Wenn man den Cursor zu schnell bewegt, dann werden die Abstände zwischen den Koordinaten zu groß.
Als resultat wird die Linie nicht richtig durchgezogen (siehe unten).
VB.NET-Quellcode
- Dim coordinate As Point
- Dim coordinates As New List(Of Point)
- Private Sub pnlDraw_MouseMove(sender As Object, e As MouseEventArgs) Handles pnlDraw.MouseMove
- If e.Button = Windows.Forms.MouseButtons.Left Then
- coordinate = New Point(e.X, e.Y)
- coordinates.Add(coordinate)
- pnlDraw.Invalidate()
- End If
- End Sub
- Private Sub pnlDraw_Paint(sender As Object, e As PaintEventArgs) Handles pnlDraw.Paint
- If Not coordinates Is Nothing Then
- For Each c As Point In coordinates
- e.Graphics.FillEllipse(New SolidBrush(Color.Black), c.X, c.Y, 5, 5)
- Next
- End If
- End Sub