2010-06-29 81 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時計算該大小)。

相關問題