2020年8月6日 星期四

vb.net 移動視窗 [Move windows without title bar]

1
2
Private isMouseDown As Boolean = False
Private mouseOffset As Point





1
2
3
4
5
6
7
8
9
' Left mouse button pressed
Private Sub Form1_MouseDown(sender As Object,e As MouseEventArgs) Handles Form1.MouseDown
    If e.Button = Windows.Forms.MouseButtons.Left Then
        ' Get the new position
        mouseOffset = New Point(-e.X, -e.Y)
        ' Set that left button is pressed
        isMouseDown = True
    End If
End Sub

1
2
3
4
5
6
7
8
9
' MouseMove used to check if mouse cursor is moving
Private Sub Form1_MouseMove(sender As Object, e As MouseEventArgs) Handles Form1.MouseMove
    If isMouseDown Then
        Dim mousePos As Point = Control.MousePosition
        ' Get the new form position
        mousePos.Offset(mouseOffset.X, mouseOffset.Y)
        Me.Location = mousePos
    End If
End Sub

1
2
3
4
5
6
' Left mouse button released, form should stop moving
Private Sub Form1_MouseUp(sender As Object, e As MouseEventArgs) Handles Form1.MouseUp
    If e.Button = Windows.Forms.MouseButtons.Left Then
        isMouseDown = False
    End If
End Sub

沒有留言:

張貼留言