2010-08-30 160 views
3

我在設計時爲我的一些控件使用了Anchor屬性。 但是當我在運行時更改這些控件的.Top屬性時,似乎它與Anchor屬性混淆了,並且不再遵守它。 發生了什麼?怎麼修?設置.Top屬性,刪除Anchor屬性

+0

郵政演示該問題的一個片段。 – 2010-08-30 18:35:42

回答

2

我試圖重現您描述的問題,但無法完全匹配它。但是,下面的示例可能會幫助您解決我懷疑您遇到的問題。

(我的僱主塊i.imgur.com,圖像主機左右。如果你有觀看屏幕截圖任何問題,讓我知道。)

下面這個簡單的表單包含固定在一組框所有四方都與其母公司形成對照。

Screenshot 01

當單擊該按鈕時,下面的代碼執行:

groupBox1.Top = 0; 

這會導致組框搬遷,像這樣:

Screenshot 02

但是請注意,該錨定仍然榮幸:

Screenshot 03

我懷疑你正在尋找當調整控制,沒有什麼除了的控制變化的頂部位置的效果。不幸的是,在這種情況下,設置Top屬性會重新定位控件而不是調整它的大小。

但是,您可以使用SetBounds()方法完成調整大小。在下面的例子中,我使用它的現有邊界調整錨定控件的大小,使用新的頂部。請注意,我不採取任何措施來避免非法的負面高度,您可能應該這樣做。

 int newtop = 0; // the new top bound 
groupBox1.SetBounds(
     groupBox1.Left, 
     newtop, 
     groupBox1.Width, 
     groupBox1.Height + groupBox1.Top - newtop); 

這導致調整和搬遷控件繼續後兌現其錨固:

Screenshot 04