1.Control.PointToScreen(Point p)
将指定工作区点的位置计算成屏幕坐标。
命名空间: System.Windows.Forms
程序集: System.Windows.Forms(在 System.Windows.Forms.dll 中)
参数
- p
-
类型:System.Drawing..::.Point
要转换的工作区坐标 Point。
返回值
类型:System.Drawing..::.Point一个 Point,它表示转换后的 Point、p(以屏幕坐标表示)。
2.Control.PointToClient(Point p)将指定屏幕点的位置计算成工作区坐标。
命名空间: System.Windows.Forms
程序集: System.Windows.Forms(在 System.Windows.Forms.dll 中)
参数
- p
-
类型:System.Drawing..::.Point
要转换的屏幕坐标 Point。
返回值
类型:System.Drawing..::.Point一个 Point,它表示转换后的 Point、p(以工作区坐标表示)。
3.注意:这两个函数的前面都有Control,
这表示这是以那个控件的位置作为基准(绝大多数我们需要窗体的
工作区最为基准);但是我们也可以让窗体上的任何一个控件作为基准
System.Drawing.Point mousePosition = System.Windows.Forms.Control.MousePosition; label2.Text = "鼠标相对于屏幕的位置:" + mousePosition.ToString(); label3.Text = "鼠标相对于参照物的位置:" + button1.PointToClient(mousePosition).ToString();//以按钮为基准 label4.Text = "鼠标相对于工作区的位置:" + this.PointToClient(mousePosition).ToString();//以窗体的工作区 label5.Text = "鼠标相对于屏幕的位置(经参照物转换):" +button1.PointToScreen(button1.PointToClient(mousePosition)).ToString(); label6.Text = "鼠标相对于屏幕的位置(经参照物转换):" + this.PointToScreen(this.PointToClient(mousePosition)).ToString();
这样也是可以的!!!
其中蓝色是窗体的控制区域,黄色是窗体的工作区,其余白色和窗体背后的都是屏幕!
Control.PointToScreen(Point p)&&Control.PointToClient(Point p)