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