Eine Form mit FormBorderStyle = FormBorderStyle.None kann nicht über die Titelleiste verschoben werden. Sie lässt sich aber mit folgendem Code bewegen.
Das geht auch mit Controls auf der Form.
Module Module_Move
Dim X1, Y1 As Integer
Sub ObjectMouseDown(ByVal X As Integer, ByVal Y As Integer)
X1 = X
Y1 = Y
End Sub
Sub ObjectMove(ByVal Obj As Object, ByVal X2 As Integer, ByVal Y2 As Integer)
Obj.Left = Obj.Left + (X2 - X1)
Obj.Top = Obj.Top + (Y2 - Y1)
End Sub
End Module
Der Aufruf erfolgt bespielsweise so:
Private Sub Form1_MouseDown(ByVal sender As Object, _
ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseDown
ObjectMouseDown(e.X, e.Y)
End Sub
Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove
Select Case e.Button
Case Windows.Forms.MouseButtons.Left
ObjectMove(Me, e.X, e.Y)
End Select
End Sub
8 Kommentare zum Snippet