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

推荐订阅源

量子位
宝玉的分享
宝玉的分享
Apple Machine Learning Research
Apple Machine Learning Research
阮一峰的网络日志
阮一峰的网络日志
博客园 - 司徒正美
酷 壳 – CoolShell
酷 壳 – CoolShell
IT之家
IT之家
H
Help Net Security
雷峰网
雷峰网
M
MIT News - Artificial intelligence
Microsoft Security Blog
Microsoft Security Blog
美团技术团队
GbyAI
GbyAI
博客园_首页
博客园 - 三生石上(FineUI控件)
T
Tailwind CSS Blog
I
InfoQ
小众软件
小众软件
Google DeepMind News
Google DeepMind News
D
Docker
Engineering at Meta
Engineering at Meta
WordPress大学
WordPress大学
博客园 - Franky
Hugging Face - Blog
Hugging Face - Blog

博客园 - 极无宪

小红书如何采集市集 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