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.Location = oMovetoPoint End If End Sub