vb 在运行时移动一个控件的时候,如何实时显示控件的坐标位置?

kendyhj101 2009-12-22 04:40:59
如题。不用Time控件
...全文
257 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
舉杯邀明月 2009-12-23
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 kendyhj101 的回复:]
控件拖动的时候,鼠标一直在控件上,也就是说控件和鼠标的相对位置在拖动的时候是不变的,
所有用老张的方法,得不到实时位置
[/Quote]
错!

不知道楼主是不是认真写分析过这段代码!
kendyhj101 2009-12-23
  • 打赏
  • 举报
回复
控件拖动的时候,鼠标一直在控件上,也就是说控件和鼠标的相对位置在拖动的时候是不变的,
所有用老张的方法,得不到实时位置
舉杯邀明月 2009-12-23
  • 打赏
  • 举报
回复
Ding 老张。

楼主参考 老张 的代码,把窗体上所有可见的控件都加上 DragOver() 事件代码,就完全符合你的要求了。
SYSSZ 2009-12-22
  • 打赏
  • 举报
回复
上述代码就是在窗体拖动一个Command1,Command1的左边界(Left)的变化显示在Text1中,上边(Top)界变化显示在Text2中
Text2 = "Height=" & Y - b一句应为Text2 = "Top=" & Y - b,Top误打成了Height
SYSSZ 2009-12-22
  • 打赏
  • 举报
回复
显示的就是被拖动控件在拖动过程中实时的位值。你把它当成什么了?
kendyhj101 2009-12-22
  • 打赏
  • 举报
回复
谢谢老张啊,但不是我想要的效果,
我想要的是鼠标左键一直按住拖动的时候把位置显示出来
SYSSZ 2009-12-22
  • 打赏
  • 举报
回复
'拖动Command1
Dim a As Double
Dim b As Double
Private Sub Form_DragOver(Source As Control, X As Single, Y As Single, State As Integer)
Text1 = "Left=" & X - a
Text2 = "Height=" & Y - b
End Sub
Private Sub Command1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
a = X
b = Y
Command1.Drag vbBeginDrag
End If
End Sub

Private Sub Form_Load()
Form1.ScaleMode = 1
End Sub
  • 打赏
  • 举报
回复
你是怎么移动控件的?
kendyhj101 2009-12-22
  • 打赏
  • 举报
回复
dragmove 在DragMode = vbAutomatic的时候,当鼠标按下去的时候有反应
但在移动控件的过程没反应的

DragMode =vbManual什么反应都没
  • 打赏
  • 举报
回复
有没有类似的事件,dragmove 一类的?抱歉,没vb在家。
kendyhj101 2009-12-22
  • 打赏
  • 举报
回复
drag不行的啊
无·法 2009-12-22
  • 打赏
  • 举报
回复
应该会触发mousemove事件的吧
  • 打赏
  • 举报
回复
drag是件,查查left,top

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧