关于vb中控件拖动的问题?

问一个控件拖动的问题。DimoldXAsSingle,oldYAsSinglePrivateSubForm_DragDrop(SourceAsControl,XAsSin... 问一个控件拖动的问题。
Dim oldX As Single, oldY As Single

Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single)

Source.Move Left + X - oldX, Top + Y - oldY

End Sub

Private Sub Frame1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
oldX = X + Left
oldY = Y + Top
Frame1.Drag 1

End Sub

Private Sub Frame1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)

'在控件的 MouseDown 里记下鼠标位置(mX,mY),在MouseMove里写:
If Button = vbLeftButton Then
' Frame1.Move Frame1.Left + X - oldX, Frame1.Top + Y - oldX
End If

End Sub

利用上面这段代码可是实现frame1在form1上的拖动,但是,如果我再在窗体上加上一个frame2或其他的控件,这样我拖动frame1到frame2的时候,就不会出现我想要的结果,就是frame1停在frame2上,而是跳到了一个不知道的什么地方。
各位给各解决办法。
展开
 我来答
jizhongbo
2006-05-28 · TA获得超过2154个赞
知道大有可为答主
回答量:1493
采纳率:0%
帮助的人:906万
展开全部
这是因为Frame控件也是一个容器,从Frame2外进入Frame2内,相当于从一个坐标系进入了另一个坐标系。再未进入Frame2时,Frame1的位置是相对于它所在的窗体(确切的说是该窗体的左上角坐标(0,0))确定的,一旦进入Frame2,Frame1的位置就相对于Frame2的左上角坐标(0,0)确定。

你可以在设计时作个试验,窗体上放一个Frame控件和一个按钮控件,按钮控件在Frame控件外面的时候的坐标设定为一个值(如90,90),当你把该按钮放到Frame控件上的时候,同样设定这个坐标值,你看看什么效果。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式