请问在C#中如何将屏幕坐标转换为对应的窗体中的坐标值?
通过计算也可以(x= e.x-this.left ;y= e.y - this.top)
不过我的程序里面取不到当前的窗体
有没有别的办法了

解决方案 »

  1.   

    将指定屏幕点的位置计算成工作区坐标,Control为当前工作区所在的控件。
    Control.PointToClient(screeppoint)
      

  2.   

    Control.PointToClient(screeppoint)
      

  3.   

    将指定屏幕点的位置计算成工作区坐标。[Visual Basic]
    Public Function PointToClient( _
       ByVal p As Point _
    ) As Point[C#]
    public Point PointToClient(
       Point p
    );[C++]
    public: Point PointToClient(
       Point p
    );[JScript]
    public function PointToClient(
       p : Point
    ) : Point;参数

    要转换的屏幕坐标 Point。 
    返回值
    一个 Point,它表示转换后的 Point、p(以工作区坐标表示)。
      

  4.   

    private void Form1_Load(object sender, System.EventArgs e)
    {
    Point p=this.PointToClient(new Point(100,100));
    MessageBox.Show(p.X.ToString()+","+p.Y.ToString());
     
    }