在程序运行的状态下 用鼠标移动窗体上的控件

Option Explicit

Dim a As Boolean     ‘ 这个变量记录了是否在按下状态
Dim oldx As Integer ‘ 这个变量记录了 未移动的X 位置
Dim oldy As Integer ‘ 这个变量记录了 未移动的Y 位置

Private Sub Frame1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
a = True        ‘鼠标在 框架上按下时候 记录已经按下
oldx = X        ‘同时记录当前位置 X
oldy = Y        ‘同时记录当前位置 Y
End Sub

Private Sub Frame1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
‘ 若按下 就移动 当前位置-移动位置=移动值
‘具体可以参考move 函数
If a = True Then Frame1.Move Frame1.Left + X - oldx, Frame1.Top + Y - oldy

End Sub

Private Sub Frame1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
a = False ‘鼠标放开后 记录
End Sub

来源:CSDN

相关日志

Leave a Reply