在程式中有時可能需要控件能在程式視窗拖動,這時就需要拖動控件的代碼。我們可以用控件的MouseDown,MouseUp事件實作控件的拖動。例如圖1,我們怎麼實作視窗中控件PictureBox1的拖動那?
![這裡寫圖檔描述](https://img-blog.csdn.net/2018072813552824?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3VzZXJs/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
圖中我們已經在窗體上放了一個控件Picture1,需要拖動的就是它,我們在上面加了一個Label來标注它的名字。
我門現在在窗體代碼中定義兩個變量xPos,yPos,并在Picture1的MouseDown,MouseUp中添加如下代碼:
Dim xPos As Long
Dim yPos As Long
‘注意要使用MouseDown,MouseUp,就不要設定控件的DropMode為1
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
xPos = X
yPos = Y
End If
End Sub
Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
Picture1.Move Picture1.Left + (X - xPos), Picture1.Top + (Y - yPos)
End If
End Sub
這下我們就可以實作運作時窗體上控件的拖動了。圖中我們在Picture1上按下滑鼠左鍵,然後移動一定距離,把控件Picture1移動到了另一位置。
![這裡寫圖檔描述](https://img-blog.csdn.net/20180728140116895?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3VzZXJs/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
需要注意的是,使用MouseDown,MouseUp,就不要設定控件的DropMode為屬性為1-Automatic。