'****************************************** 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 ' 以當(dāng)前鼠標位置為基礎(chǔ),找出目標位置 oMoveToPoint = Me.PointToScreen(New Point(e.X, e.Y)) ' 根據(jù)開始位置作出調(diào)整 oMoveToPoint.Offset(Me.oPointClicked.X * -1, _ (Me.oPointClicked.Y + _ SystemInformation.CaptionHeight + _ SystemInformation.BorderSize.Height) * -1) ' 移動窗體 Me.Location = oMoveToPoint End If End Sub |