惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Apple Machine Learning Research
Apple Machine Learning Research
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
G
Google Developers Blog
博客园 - 司徒正美
J
Java Code Geeks
aimingoo的专栏
aimingoo的专栏
A
About on SuperTechFans
博客园 - 三生石上(FineUI控件)
WordPress大学
WordPress大学
T
The Blog of Author Tim Ferriss
D
Docker
大猫的无限游戏
大猫的无限游戏
D
DataBreaches.Net
腾讯CDC
V
Visual Studio Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
C
Check Point Blog
M
MIT News - Artificial intelligence
Jina AI
Jina AI
I
InfoQ
雷峰网
雷峰网
The Cloudflare Blog
美团技术团队
Engineering at Meta
Engineering at Meta

博客园 - 极无宪

小红书如何采集市集 Textrimming 失效怎么办? 现在找个vs2019 安装好难呀! WPF:如何将调试信息写入到输出窗口? System.Net.WebException: 远程服务器返回错误: (405) 不允许的方法。 警惕:开启了 SQL Profiler监测SQL语句忘记关了,C盘居然被占满了 nuget 总是获取失败怎么办? 还在用WebBrowser吗?你out了! 关于打印机共享的注意事项——又被叫去修电脑了 MVVM转换器Int2StringConverter基础类 ServicesController 的使用 使用本地IIS Web 服务起转到win7 iis7后的系列问题 客户端元素中找不到与此名称匹配的终结点 关于错误的友好提示 调侃 亚马逊的 kindlegen propertygrid 下拉列表 VC编写在windows7下以管理员权限运行的程序(转) vs 已经在解决方案中打开了具有该名称的项目 解决方案"System.InvalidOperationException: 配置有 NoSecurityChanges 标志的 AppDomainManager 修改了 AppDomain 的安全状态"
winform中坐标系转换的问题,获取某点在屏幕中的绝对位置等
极无宪 · 2014-01-09 · via 博客园 - 极无宪

2014-01-09 14:22  极无宪  阅读(751)  评论()    收藏  举报

坐标系转换的问题,控件有控件的坐标系,屏幕有屏幕的坐标系。当然这两者是可以非常简便的进行转换的。如果要将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