该属性读取或者设置form的客户区域或者也叫文档区域,再换句话说就是工作的区域。如果设置的区域大于form当前的大小,则窗体会自动出现滚动条。
比如要从大小为(50,50)大小的form(0,0)的位置画一个(100,100)大小的矩形,如果设置该属性值为(50,50),那么form就会认为只需要(50,50)大小的区域,此时form本身的大小足以完全满足需要,那么就不会出现滚动条;另一方面,如果form大小本身为(200,200),设置属性值为(201,201),那么由于form会认为当前需要一个(201,201)大小的区域才能满足需要,就会出现滚动条。
代码
}
public partial class Form1 : Form
{
Point rectangleTopLeft = new Point(0, 0);
Size rectangleSzie = new Size(200, 200);
Point ellipseTopLeft = new Point(50, 200);
Size ellipseSize = new Size(200, 150);
Pen bluePen = new Pen(Color.Blue, 3);
Pen redPen = new Pen(Color.Red, 2);
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
Graphics grfx = e.Graphics;
if (e.ClipRectangle.Top < 350 || e.ClipRectangle.Left < 250)
{
Rectangle rectangleArea = new Rectangle(rectangleTopLeft, rectangleSzie);
Rectangle ellipseArea = new Rectangle(ellipseTopLeft, ellipseSize);
grfx.DrawRectangle(bluePen, rectangleArea);
grfx.DrawEllipse(redPen, ellipseArea);
}
}
public Form1()
{
InitializeComponent();
this.AutoScrollMinSize = new Size(200, 200);
}
{
Point rectangleTopLeft = new Point(0, 0);
Size rectangleSzie = new Size(200, 200);
Point ellipseTopLeft = new Point(50, 200);
Size ellipseSize = new Size(200, 150);
Pen bluePen = new Pen(Color.Blue, 3);
Pen redPen = new Pen(Color.Red, 2);
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
Graphics grfx = e.Graphics;
if (e.ClipRectangle.Top < 350 || e.ClipRectangle.Left < 250)
{
Rectangle rectangleArea = new Rectangle(rectangleTopLeft, rectangleSzie);
Rectangle ellipseArea = new Rectangle(ellipseTopLeft, ellipseSize);
grfx.DrawRectangle(bluePen, rectangleArea);
grfx.DrawEllipse(redPen, ellipseArea);
}
}
public Form1()
{
InitializeComponent();
this.AutoScrollMinSize = new Size(200, 200);
}
}
一个Demo如上所示。