2010-06-29 47 views
0

我有一个矩形,我正在绘制一个窗体。矩形是编码的。我想根据表单的大小调整该矩形的大小,也就是当表单被调整大小时,矩形被调整大小。我该怎么做? 我是否需要对绘制矩形的方式进行更改,现在的方式如下所示:Rectangle rect = new Rectangle(0,0,650,50); 我使用了Resize事件,在这个事件中,我通过这个来分配新的大小,我做了新的Size(),但是这使得我的矩形从窗体中消失。如何根据绘制的表单调整矩形的大小?

回答

2

添加下面的表单的OnPaint处理:

rect.Width = this.Width; 
rect.Height = this.Height; 

这应该保持充满了你的矩形形式。

OnPaint事件应该是这个样子:

protected override void OnPaint(PaintEventArgs e) 
    { 
     base.OnPaint(e); 

     rect.Width = this.Width; 
     rect.Height = this.Height; 
    } 

这将调整您的每次矩形的形式重新粉刷,其中包括调整为好。

-1

要做到这一点,您必须在窗体的Form Resize事件中为您的矩形创建一个调整大小的函数。为了保持矩形的比例相对于表单的大小,你必须编写一些简单的数学。

+0

这不起作用,因为矩形必须在OnPaint方法中绘制 – 2010-06-29 11:30:36

1

您应该在OnPaint方法的重载时执行您的窗体的所有绘制。如果要使矩形的大小相对于窗体的大小,则需要在每次绘制矩形时检查窗体的大小。

不应该对Resize事件做任何事情(也许只是缓存矩形所需的大小以避免每次调用OnPaint时计算该大小)。

相关问题