Control.PointToScreen(Point p)&&Control.PointToClient(Point p)

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,

这表示这是以那个控件的位置作为基准(绝大多数我们需要窗体的

工作区最为基准);但是我们也可以让窗体上的任何一个控件作为基准

Control.PointToScreen(Point p)&&Control.PointToClient(Point p)

            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)

其中蓝色是窗体的控制区域,黄色是窗体的工作区,其余白色和窗体背后的都是屏幕!


Control.PointToScreen(Point p)&&Control.PointToClient(Point p)

上一篇:Codeforces Round #223 (Div. 1)


下一篇:FILE,文件句柄,打开文件列表和内核文件对象的关系