该属性读取或者设置form的客户区域或者也叫文档区域,再换句话说就是工作的区域。如果设置的区域大于form当前的大小,则窗体会自动出现滚动条。
比如要从大小为(50,50)大小的form(0,0)的位置画一个(100,100)大小的矩形,如果设置该属性值为(50,50),那么form就会认为只需要(50,50)大小的区域,此时form本身的大小足以完全满足需要,那么就不会出现滚动条;另一方面,如果form大小本身为(200,200),设置属性值为(201,201),那么由于form会认为当前需要一个(201,201)大小的区域才能满足需要,就会出现滚动条。
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![ExpandedBlockStart.gif](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
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如上所示。