Dim Xstart As Integer Dim Ystart As Integer Dim PBWidth As Integer Dim PBHeight As Integer Dim bRB As Boolean Dim RBPen As Pen Dim RBRectangle As Rectangle Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load RBPen = New Pen(Color.Black, 1.5) 'Color, Width RBPen.DashStyle = Drawing2D.DashStyle.Dash End Sub Private Sub PictureBox1_MouseDown(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown PictureBox1.Refresh() 'erases previous rectangle Xstart = e.X Ystart = e.Y bRB = True End Sub Private Sub PictureBox1_MouseMove(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove If bRB Then PictureBox1.Refresh() 'erases previous rectangle Select Case e.X Case Is < 0 RBRectangle.X = 0 RBRectangle.Width = Xstart Case 0 To Xstart RBRectangle.X = e.X RBRectangle.Width = Xstart - e.X Case Xstart To PBWidth RBRectangle.X = Xstart RBRectangle.Width = e.X - Xstart Case Is > PBWidth RBRectangle.X = Xstart RBRectangle.Width = PBWidth - Xstart End Select Select Case e.Y Case Is < 0 RBRectangle.Y = 0 RBRectangle.Height = Ystart Case 0 To Ystart RBRectangle.Y = e.Y RBRectangle.Height = Ystart - e.Y Case Ystart To PBHeight RBRectangle.Y = Ystart RBRectangle.Height = e.Y - Ystart Case Is > PBHeight RBRectangle.Y = Ystart RBRectangle.Height = PBHeight - Ystart End Select PictureBox1.CreateGraphics.DrawRectangle(RBPen, RBRectangle) End If End Sub Private Sub PictureBox1_MouseUp(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseUp If bRB Then bRB = False 'Add code here End If End Sub Private Sub PictureBox1_Resize(sender As Object, e As System.EventArgs) Handles PictureBox1.Resize PBWidth = PictureBox1.Width - 1 'Right edge PBHeight = PictureBox1.Height - 1 'Bottom edge End Sub