winform中坐标系转换

 时间:2024-10-13 00:03:51

在使用winform进行编程的时候,我们有的时候会遇到需要读取鼠标位置或者判断鼠标位置以及控件位置的情况,今天小编教大家使用一些小方法来实现读取鼠标位置以及控件位置,甚至判断鼠标位置是否在控件位置中等。

工具/原料

电脑一台

Visual Studio 2017

程序坐标系转为屏幕坐标系

1、首先小编这里创建一个winform程序,然后实现点击程序中的按钮,获取按钮的左上角坐标以及按钮左上角相对于屏幕来说左上角的坐标,如下图:

winform中坐标系转换

2、下图中是点击按钮的事件实现代码,对重要代码做出一些解释:Point p=new Point(0,0像粜杵泳);这里创建一个坐标为(0,0)的点作为屏幕左上角的起始点p=this.button1.PointToScreen(p);这里使用Control的PointToScreen方法,将空间的坐标转化为相对于屏幕的坐标,如下图:

winform中坐标系转换

3、运行程序,点击按钮,可以看到鼠标左上角的坐标相对于程序为(62,76),如下图:

winform中坐标系转换

4、然后获取到的按钮左上角相对于屏幕的坐标为(828,480),成功将控件坐标转化到了屏幕坐标系下,如下图:

winform中坐标系转换

屏幕坐标系转换为程序坐标系

1、这里小编还是创建一个winform程序,然后实现点击鼠标按钮然后先获取屏幕中光标位置,然后将光标位置转化为相对程序的坐标,然后就可以判断光标位置是否在按钮中了,如下图:

winform中坐标系转换

2、下图中的代码就是按钮点击糙怍牢莱事件的具体实现,对其中重要的代码做出解释,Point p = Control.MousePosition;这里通过Control的MousePosition方法恝依在绌来获取当前光标相对于屏幕的绝对坐标p = this.PointToClient(p);这里使用Control的PointToClient方法,将当前光标的绝对坐标转化为相对于窗口的相对坐标如下图:

winform中坐标系转换

3、运行程序,点击按钮,首先弹出当前光标的绝对坐标的对话框,如下图:

winform中坐标系转换

4、然后程序会自动转换绝对坐标为当前窗口的相对坐标,可以看到当前的相对坐标为171巳呀屋饔,131,然后当前按钮的四个边界坐标也有值,然后就可以判断当前光标是否在按钮中了,因为我们使用的点击按钮事件恝依在绌来获取光标值,所以光标肯定在按钮边界中,如下图:

winform中坐标系转换
  • Flexsim软件教程:[12]怎么使用AVI制作器?
  • 视觉图像:模板匹配二
  • WPS Word 如何开启居中对齐时自动删除段落缩进
  • cajviewer目录关掉了如何显示出来?
  • 毕业设计所使用的方法
  • 热门搜索
    手抄报花边漂亮边框 三年级环保手抄报 抗病毒手抄报图片 劳动节手抄报内容资料 庆国庆手抄报简单漂亮 关于鲁迅的手抄报 世界环境日手抄报内容 五一劳动节手抄报简单又漂亮 儿童手抄报图片大全 珍爱生命预防溺水手抄报图画