完整代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
'****************************************** Private oOriginalRegion As Region = Nothing '用于窗体移动 Private bFormDragging As Boolean = False Private oPointClicked As Point '****************************************** Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseDown Me.bFormDragging = True Me.oPointClicked = New Point(e.X, e.Y) End Sub '****************************************** Private Sub Form1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseUp Me.bFormDragging = False End Sub '****************************************** Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseMove If Me.bFormDragging Then Dim oMoveToPoint As Point '以当前鼠标位置为基础,找出目标位置 oMoveToPoint = Me.PointToScreen(New Point(e.X, e.Y)) '根据开始位置作出调整 oMoveToPoint.Offset(Me.oPointClicked.X * -1, _ (Me.oPointClicked.Y + _ SystemInformation.CaptionHeight + _ SystemInformation.BorderSize.Height) * -1) '如果是无边框窗体,仅需要保留Me.oPointClicked.Y Me.Location = oMoveToPoint '移动窗体 End If End Sub |
原文链接:VB.NET 拖动无边框的窗体,转载请注明来源!