以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何返回窗口内一图片的屏幕坐标  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=154592)

--  作者:wangjh8888
--  发布时间:2020/9/19 17:43:00
--  如何返回窗口内一图片的屏幕坐标
老师好
图片(PictureBox)在窗口的SplitContainer(分区面板)内,如何返回这一图片的屏幕坐标,谢谢


[此贴子已经被作者于2020/9/19 17:45:06编辑过]

--  作者:有点蓝
--  发布时间:2020/9/20 19:54:00
--  
参考:

Dim p As WinForm.PictureBox = e.Form.Controls("PictureBox1")
Dim p2 As point = e.Form.panel.FindForm().PointToScreen( new point(p.Left,p.Top))
msgbox("x=" & p2.x & ",y=" &p2.y)

--  作者:wangjh8888
--  发布时间:2020/9/21 16:35:00
--  
可用获取到,但是,当SplitContainer的分割线移动后,图片的位置也变化了,再去获取x,y却没有改变呢,怎么办?
[此贴子已经被作者于2020/9/21 16:36:06编辑过]

--  作者:有点蓝
--  发布时间:2020/9/21 16:45:00
--  
Dim p As WinForm.PictureBox = e.Form.Controls("PictureBox1")
Dim sp = e.Form.Controls("SplitContainer1").basecontrol
Dim p2 As point = sp.panel2.PointToScreen( new point(p.Left,p.Top))
msgbox("x=" & p2.x & ",y=" &p2.y)

--  作者:wangjh8888
--  发布时间:2020/9/21 17:32:00
--  
实际案例中,SplitContainer有好几层套用,代码怎么写?
--  作者:wangjh8888
--  发布时间:2020/9/21 19:56:00
--  
谢谢,打扰了,解决了