On a Windows Form, add a PictureBox control named PictureBox1 and write the code below on the MouseDown, MouseUp, and MouseMove events of the PictureBox.

Press left mouse button and move the mouse in the form as you see a line will be drawn until mouse is up, wherever you move the mouse.

Imports System.Drawing

Imports System.Drawing.Drawing2D

Public Class Form1

Public eventString As String

Public pw As Integer

'Public j As Integer

'Public p As Integer

'Public q As Integer

Private Sub PictureBox1_MouseDown(ByVal sender As Object, ByVal e AsSystem.Windows.Forms.MouseEventArgs)
Handles PictureBox1.MouseDown

' i = e.X

' j = e.Y

' p = e.X

'q = e.Y

pw = 4 ' you can use numeric updown for selecting pen-width

Select Case e.Button

Case MouseButtons.Left

eventString = "L"

Case MouseButtons.Right

eventString = "R"

Case MouseButtons.Middle

eventString = "M"

Case MouseButtons.XButton1

eventString = "X1"

Case MouseButtons.XButton2

eventString = "X2"

Case MouseButtons.None

eventString = Nothing

End Select

End Sub

Private Sub PictureBox1_MouseMove(ByVal sender As Object, ByVal e AsSystem.Windows.Forms.MouseEventArgs)
Handles PictureBox1.MouseMove

Dim yourArray As Point() = {New Point(e.X - pw, e.Y - pw), New Point(e.X, e.Y)}

Dim cle As Graphics

Dim myPath As New GraphicsPath

Dim mykolor As Color

cle = PictureBox1.CreateGraphics

If eventString = "L" Then

mykolor = Color.Blue 'here you can select color using colordialogbox

myPath.StartFigure()

myPath.AddLines(yourArray)

myPath.CloseFigure()

cle.DrawPath(New Pen(mykolor, pw), myPath)

End If

If eventString = Nothing Then

myPath.Reset()

cle.Flush()

End If

End Sub

Private Sub PictureBox1_MouseUp(ByVal sender As Object, ByVal e AsSystem.Windows.Forms.MouseEventArgs)
Handles PictureBox1.MouseUp

eventString = Nothing

End Sub

End Class