VB.NET 拖动无边框的窗体

Posted on 2005-07-10 12:27  flourish  阅读(178)  评论(0)    收藏  举报
******************************************
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

博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3