天天看點

VB6.0中怎樣使控件可以在運作時實作拖動操作

在程式中有時可能需要控件能在程式視窗拖動,這時就需要拖動控件的代碼。我們可以用控件的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。
           

繼續閱讀