首页 > Web开发 > 详细

winform中坐标系转换的问题,获取某点在屏幕中的绝对位置等

时间:2014-01-14 19:22:41      阅读:643      评论:0      收藏:0      [点我收藏+]

坐标系转换的问题,控件有控件的坐标系,屏幕有屏幕的坐标系。当然这两者是可以非常简便的进行转换的。如果要将Control1(例如Label1或者Button1)上的点(x,y)转换成屏幕上的点(x1,y1),那么就调用Control1.PointToScreen。反之,如果要将屏幕的(x1,y1)变成控件上的(x,y),那么就调用Control1.PointToClient。 

eg1:求Button1的左上角在屏幕上的位置。 
Point p = new Point(0,0); // 0,0 是左上角 
p = Button1.PointToScreen(p); // p.X, p.Y 是Button1左上角在屏幕上的坐标 

eg2:求鼠标当前位置是否在Button1内。 
Point p = Control.MousePosition; 
p = Button1.PointToClient(p); 
if (p.X < Button1.Left || p.X > Button1.Right || 
p.Y < Button1.Top || p.Y > Button1.Bottom) 
System.Diagnostic.Debug.Writeline( "not in button1 "); // 不在Button1内 
// else 在Button1内。 

其他相关内容参见Control.RectangleToClient , Control.RectangleToScreen

http://blog.csdn.net/zhichao2001/article/details/7015940

winform中坐标系转换的问题,获取某点在屏幕中的绝对位置等

原文:http://www.cnblogs.com/crazycxy/p/3512153.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!