Point point1 = new Point();
point.X = 10;
point.Y = 10;Form1中的容器很多,请问,这个点的坐标是相对于哪个容器而言的呢?

解决方案 »

  1.   

    http://msdn.microsoft.com/zh-cn/library/ms229598.aspx
      

  2.   

    这个我知道,我就是想知道,就这样声明,
    Point point1 = new Point();
    point.X = 10;
    point.Y = 10;
    那是指屏幕坐标,还是工作区坐标呢,而工作区根本还没确定
      

  3.   

    相对于屏幕
    你看那个MSDN链接最下面的
    PointToClient
    PointToScreen
    示例
      

  4.   

    相对于父控件(容器)//获取的是相对form窗口的坐标。(延伸一下就是相对于绑定事件的控件的坐标)
    private void Form1_MouseDown(object sender, MouseEventArgs e)
      {
      int x = e.X;
      int y = e.Y;
      }
    private void Form1_DoubleClick(object sender, EventArgs e)//这样是获取相对显示器的屏幕坐标
      {
      int x = Control.MousePosition.X;
      int y = Control.MousePosition.Y;   
      }
    this.Location; // 窗体所在坐标
    this.PointToScreen(new Point(0, 0)); // 客户区坐标转换为屏幕坐标
    this.PointToClient(new Point(0, 0)); // 屏幕坐标转换为客户区坐标
      

  5.   

    Point本身只是两个数,无所谓相对屏幕或客户区,要看你运用的场合。我也可以用它来存放和坐标毫无关系的两个数,仅仅用来代替两个变量。
      

  6.   


    回答正确 +10分补充一下, 你这个point 只是一个变量, 如果他赋值到form的location属性上 那就是相对于屏幕的坐标了
    如果是赋值到form的第一级子控件的location 那么这个point是相对于form当前location的location不知道你明白了没有..一句话概括: 控件的location属性是针对于父级容器的相对坐标.如果父级容器是桌面,那就可以认为是绝对坐标. 
      

  7.   

    Point 只是你定义的,你可以 定义其他
    但是用在哪,就要有用在哪的意义了