Ciao a tutti, sono riuscito tramite questo codice trovato in giro per il web, a disegnare delle linee:
' True while we are drawing the new line.
Private m_Drawing As Boolean
' Buffer for erasing rubberband lines.
Private m_BufferBitmap As Bitmap
Private m_BufferGraphics As Graphics
' The mouse position.
Private m_X1 As Integer
Private m_Y1 As Integer
Private m_X2 As Integer
Private m_Y2 As Integer
' Start drawing a rubberband line.
Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseDown
' Do nothing if this isn'tthe left mouse button.
If e.Button <> MouseButtons.Left Then Exit Sub
m_Drawing = True
' Save a snapshot of the form.
SaveSnapshot()
' Save the current mouse position.
m_X1 = e.X
m_X2 = e.X
m_Y1 = e.Y
m_Y2 = e.Y
End Sub
Private Sub SaveSnapshot()
Dim new_bitmap As Bitmap
' Make a new bitmap that fits the form.
new_bitmap = New Bitmap(Me.Size.Width, Me.Size.Height, Me.CreateGraphics())
m_BufferGraphics = Graphics.FromImage(new_bitmap)
' Clear the new bitmap.
m_BufferGraphics.Clear(Me.BackColor)
' Copy the existing bitmap's contents into
' the new bitmap.
If Not (m_BufferBitmap Is Nothing) Then
m_BufferGraphics.DrawImage(m_BufferBitmap, 0, 0)
End If
' Save the new bitmap and graphics objects.
m_BufferBitmap = new_bitmap
End Sub
' Continue drawing the rubberband line.
Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseMove
' Do nothing if we're not drawing.
If Not m_Drawing Then Exit Sub
' Save the new point.
m_X2 = e.X
m_Y2 = e.Y
' Erase the previous line.
DrawForm(Me.CreateGraphics())
' Draw the new line directly on the form.
Me.CreateGraphics().DrawLine( _
Pens.Gray, m_X1, m_Y1, m_X2, m_Y2)
End Sub
' Redraw the saved buffer.
Private Sub DrawForm(ByVal gr As Graphics)
If Not (m_BufferBitmap Is Nothing) Then gr.DrawImage(m_BufferBitmap, 0, 0)
End Sub
' Finish drawing the new line.
Private Sub Form1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseUp
' Do nothing if we're not drawing.
If Not m_Drawing Then Exit Sub
m_Drawing = False
' Save the new point.
m_X2 = e.X
m_Y2 = e.Y
' Draw the new line permanently on the buffer.
m_BufferGraphics.DrawLine( _
Pens.Blue, m_X1, m_Y1, m_X2, m_Y2)
' Redraw to show the new line.
DrawForm(Me.CreateGraphics())
End Sub
' Redraw the form.
Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
DrawForm(e.Graphics)
End Sub
Il mio problema è ora, come posso fare per selezionare una linea, e magari cliccando il tasto canc cancellarla?...Grazie mille a tutti...