2013-03-05 19 views
0

所以,可以說我有一個WinForm的面板,我希望它顯示在特定的點,並應該有一個特定的寬度和高度的WinForm。另外,我希望在運行時做到這一點。控件邊界與設置X,Y,寬度,控件高度之間的區別是什麼?

那麼,移動和設置面板的尺寸有什麼區別和正確的方法?

這樣:

Panel1.bounds.X:=10; 
Panel1.bounds.Y:=10; 
Panel1.bounds.width:=100; 
Panel1.bounds.height:=103; 

或者這樣:

Panel1.Left := 10; 
Panel1.Top := 10; 
Panel1.width:=100; 
Panel1.height:=103; 

或兩個方面應該對PANEL1同樣的效果。

我想弄清楚我的程序真的出了什麼問題......雖然我提出了一個特定於我的問題的問題,但沒有人甚至試圖回答甚至無法發表評論。所以,我提出了一些問題來理解我的問題。

+1

如果你指的是[這個問題](http://stackoverflow.com/q/15210229/62576),我無法回答或評論它,因爲我甚至不能提出一個模糊的猜猜你在問什麼。 (就像之前那個版本使用相同圖像的版本一樣,但是我感到困惑,但沒有回答,我想)。這個更清晰,並且實際上清楚了你要求的內容。也許前一個編輯更清楚的編輯也會讓你在那裏得到答案。 :-) – 2013-03-05 23:48:28

回答

1

如果要設置Bounds,則需要使用矩形進行設置。 (請原諒任何語法錯誤,在我的例子;我的德爾福是有點生疏)

BoundsRect: Rectangle; 
BoundsRect.X = 10; 
BoundsRect.Y = 10; 
BoundsRect.Width := 100; 
BoundsRect.Height := 103; 
Panel1.Bounds := BoundsRect; 

通常情況下,你會使用,如果你想設置或更改多個屬性。如果你只是想設置一個或兩個屬性,你可以使用WidthTop

另外一個區別是,每次你設置這些屬性中的一個(或者Bounds,或個別屬性之一)時,它在幕後造成大量工作(移動和重繪窗口等)。從矩形設置Bounds屬性將會減少工作量。

相關問題