认清事物的本质-简单

博客园 首页 新随笔 联系 订阅 管理

该属性读取或者设置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(00);
        Size rectangleSzie 
= new Size(200200);
        Point ellipseTopLeft 
= new Point(50200);
        Size ellipseSize 
= new Size(200150);
        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(200200);
        }

    }

 

一个Demo如上所示。

posted on 2009-12-12 15:12  萧冲  阅读(4467)  评论(1编辑  收藏  举报