VB.NET拖動(dòng)無(wú)邊框窗體編程實(shí)例

字號(hào):

Imports System.Drawing
    Imports System.Windows.Forms
    ’******************************************
    Private oOriginalRegion As Region = Nothing
    ’ 用于窗體移動(dòng)
    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)前鼠標(biāo)位置為基礎(chǔ),找出目標(biāo)位置
    oMoveToPoint = Me.PointToScreen(New Point(e.X, e.Y))
    ’ 根據(jù)開(kāi)始位置作出調(diào)整
    oMoveToPoint.Offset(Me.oPointClicked.X * -1, _
    (Me.oPointClicked.Y + _
    SystemInformation.CaptionHeight + _
    SystemInformation.BorderSize.Height) * -1)
    ’ 移動(dòng)窗體
    Me.Location = oMoveToPoint
    End If
    End Sub