For this, just need 1 Button.
Public Dragging As Boolean
Public mousex, mousey As Integer Private Sub Button1_MouseUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Button1.MouseUp
If Dragging Then
'end the dragging
Dragging = False
'Me.Capture = False
Cursor.Clip = Nothing
Button1.Invalidate()
End If
End Sub
Private Sub Button1_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Button1.MouseDown
If e.Button = MouseButtons.Left Then
Dragging = True
mousex = -e.X
mousey = -e.Y
Dim clipleft As Integer = Me.PointToClient(MousePosition).X - Button1.Location.X
Dim cliptop As Integer = Me.PointToClient(MousePosition).Y - Button1.Location.Y
Dim clipwidth As Integer = Me.ClientSize.Width - (Button1.Width
- clipleft)
Dim clipheight As Integer = Me.ClientSize.Height - (Button1.Height
- cliptop)
Cursor.Clip = Me.RectangleToScreen(New Rectangle(clipleft, cliptop, clipwidth, clipheight))
Button1.Invalidate()
End If
End Sub
Private Sub Button1_MouseMove(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Button1.MouseMove
If Dragging Then
'move control to new position
Dim MPosition As New Point()
MPosition = Me.PointToClient(MousePosition)
MPosition.Offset(mousex, mousey)
'ensure control cannot leave container
Button1.Location = MPosition
End If
End Sub
No comments:
Post a Comment