2010-11-01 133 views
0

我有一個從控件派生出來的自定義控件,它被動態添加到窗體中。該控件在「位置」中可以具有負值,並且默認情況下是相對於左上角繪製的。如何在WinForms相對位置設置子控件的位置?

我怎樣才能讓控件具有負座標並且相對於右下角繪製例如?

回答

0

我不確定你可以使用Location屬性來完成它,而不需要額外的編碼。 但是(1)你可以將它的「Anchor」屬性設置爲Right和Bottom而不是Top和Left。然後,每次調整窗體大小時,它都會停留在相對於包含面板(窗體)的右下角的相同位置。然後,(2)可以將您的左上角的位置設置爲超出可見區域的值......因此,每次調整窗體(或面板)時,控件都將保持在可見區域外。

希望它有幫助。

0

你可以做類似

Point relativePos = new Point(-10, -10); 
control.Anchor = AnchorStyles.Right | AnchorStyles.Bottom; 
control.Location = new Point(this.ClientSize.Width - control.Width + relativePos.X, this.ClientSize.Height - control.Height + relativePos.Y); 

其中相對pos是相對於右下角的位置。錨點確保它保持在調整大小。

1

問題標題和問題提出了兩個不同的問題。

對於標題:是的,你可以做相對位置,但是你需要使用嵌套的佈局面板,比如TableLayoutPanel和FlowLayoutPanel。他們應該能夠做你想做的事情的大部分,如果不是全部的話。

對於實際的問題:

  1. 爲什麼?
  2. 不,你不能。
相關問題