winform中坐标系转换的问题,获取某点在屏幕中的绝对位置等
2011-11-27 01:04
996 查看
坐标系转换的问题,控件有控件的坐标系,屏幕有屏幕的坐标系。当然这两者是可以非常简便的进行转换的。如果要将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
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
相关文章推荐
- iOS开发 获取控件在屏幕上的位置(坐标系转换)
- 获取Html元素在页面中的绝对位置及问题
- android获取屏幕控件位置问题
- WPF获取鼠标相对于屏幕的绝对位置
- 获取Html元素在页面中的绝对位置及问题(1)
- React Native获取组件在屏幕上的绝对位置(包括自定义组件)
- 获取Html元素在页面中的绝对位置及问题(2)
- Chrome 获取屏幕位置问题
- winform中坐标系转换的问题
- Android手机适配问题【autolayout】,【.9制作】【获取手机屏幕的宽高】【px,dp转换】
- 转:获取Html元素在页面中的绝对位置及问题
- 获取Html元素在页面中的绝对位置及问题(2)
- JavaScript获取Input输入框的屏幕绝对位置
- 获取Html元素在页面中的绝对位置及问题
- 1.获取元素绝对位置
- android view获取在屏幕上的绝对坐标
- 获取元素的绝对位置
- Android 获取view在屏幕中的位置
- js获取滚动条位置:绝对有效
- python获取文件绝对路径解决找不到文件句柄的问题实例(readConfig.py)V1.2