是相对于显示区域的位置,这对于控件的定位好像不太有意义,为什么运行时和设计时不一致呢?Form的显示区域和工作区域究竟有何意义呢?

解决方案 »

  1.   

    ms-help://MS.VSCC/MS.MSDNVS.2052/cpref/html/frlrfsystemwindowsformscontrolclassdisplayrectangletopic.htmDisplayRectangle 属性返回控件的显示区域的工作区矩形。对于基本控件类,这相当于工作区矩形。但是,如果工作区与显示区域不同,继承控件可能会改变这种情况。显示矩形是最小的 Rectangle,它包括控件,用于摆放控件。实际上,当窗体有滚动时,DisplayRectangle  > ClientRectangle
    VS.NET 在运行时处理时,是否颠倒两个属性的含义.
    Control.Location 应该相对于ClientRectangle位置,而 ClientRectangle > =DisplayRectangle
      

  2.   

    Form或Panel等的AutoScroll为true时,它有个AutoScrollPosition的Point类型属性,可以读取/设置滚动条的位置(一般是负的),如-AutoScrollPosition.Y就是就是滚动条从起始位置移动一定距离后Control.Location.Y向上偏移的距离。注意:AutoScrollPosition和Control.Location等都是以Form的标题栏左下角为参照的。
      

  3.   

    AutoScrollPosition 这是滚动条的属性,可是滚动条无法访问
      

  4.   

    可以阿,如果你要设置Panel的滚动条位置,可以这样:
    panel1.AutoScrollPosition = Point.Empty;