电脑一台
Visual Studio 2017
首先小编这里创建一个winform程序,然后实现点击程序中的按钮,获取按钮的左上角坐标以及按钮左上角相对于屏幕来说左上角的坐标,如下图:
下图中是点击按钮的事件实现代码,对重要代码做出一些解释:Point p=new Point(0,0);这里创建一个坐标为(0,0)的点作为屏幕左上角的起始点p=this.button1.PointToScreen(p);这里使用Control的PointToScreen方法,将空间的坐标转化为相对于屏幕的坐标,如下图:
运行程序,点击按钮,可以看到鼠标左上角的坐标相对于程序为(62,76),如下图:
然后获取到的按钮左上角相对于屏幕的坐标为(828,480),成功将控件坐标转化到了屏幕坐标系下,如下图:
这里小编还是创建一个winform程序,然后实现点击鼠标按钮然后先获取屏幕中光标位置,然后将光标位置转化为相对程序的坐标,然后就可以判断光标位置是否在按钮中了,如下图:
下图中的代码就是按钮点击事件的具体实现,对其中重要的代码做出解释,Point p = Control.MousePosition;这里通过Control的MousePosition方法来获取当前光标相对于屏幕的绝对坐标p = this.PointToClient(p);这里使用Control的PointToClient方法,将当前光标的绝对坐标转化为相对于窗口的相对坐标如下图:
运行程序,点击按钮,首先弹出当前光标的绝对坐标的对话框,如下图:
然后程序会自动转换绝对坐标为当前窗口的相对坐标,可以看到当前的相对坐标为171,131,然后当前按钮的四个边界坐标也有值,然后就可以判断当前光标是否在按钮中了,因为我们使用的点击按钮事件来获取光标值,所以光标肯定在按钮边界中,如下图:
个人观点,仅供参考。
感谢阅读。