代码如下private void Form1_Paint(object sender, PaintEventArgs e)
        {
            e.Graphics.SetClip(this.ClientRectangle);
            System.Diagnostics.Debug.WriteLine("ClientRectangle region painted: " + this.ClientRectangle);
            System.Diagnostics.Debug.WriteLine("Clipping region painted: " + e.ClipRectangle);
            Pen pen = new Pen(Color.Red);
            e.Graphics.DrawLine(pen, 0, 0, 60, 120);
            e.Graphics.DrawRectangle(pen, e.ClipRectangle);
            pen.Dispose();
            System.Diagnostics.Debug.WriteLine("Clipping region painted: " + e.ClipRectangle);
           
        }如果该窗口是可以滚动的,当点击滚动条时,SetClip方法不起作用,不知谁知道为什么???

解决方案 »

  1.   

    滚动条 和 this.ClientRectangle没关系...这个区域是不变的.
      

  2.   

    你的滚动条是 AutoScroll来的 还是自己放的控件?
      

  3.   

    点动滚动条时,窗口的clip region是一定得,这个区域会重绘,剩下的部分不重绘但是会移动,我就是想知道即然没重回,那是怎么移动的呢???
      

  4.   

    我这个例子就是普通的窗口,将autoscall 属性设置成true了,调整大小使其出现滚动条