/

[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),試試看吧。