Noob's Space

[VB.Net]按住元件,拖曳表單

[VB.Net]製作可移動的表單(Movable Form)後,我發現了其他問題:「如果一個表單,都充滿了Dock在表單上的Panel,那不能按住表單移動啊?」

所以Noob我找到方法了XD

首先,加入方法。

    Private oOriginalRegion As Region = Nothing
    Private bFormDragging As Boolean = False
    Private oPointClicked As Point

然後,分別在目的元件(例如Panel1)的MouseUp、MouseMove、MouseDown加入以下方法。

MouseDown:

        Me.bFormDragging = True
        Me.oPointClicked = New Point(e.X, e.Y)

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

MouseUp:

     '當滑鼠解開後啟動
        Me.bFormDragging = False

這樣就完成了MovableForm的製作了,按下F5(Debug),試試看吧。

你可能會有興趣......?

廣告