2014-10-17 76 views
0

我想用這個辦法將在兩個不同的面板面板:添加同一控制多次在不同的父母

_formMain.panel3.Controls.Add(_formMain.panel1); _formMain.panel4.Controls.Add(_formMain.panel1);

我獲得的是PANEL1只加panel4和它從panel3中刪除。 看來最新的「添加」會覆蓋其他的「添加」。這是真的嗎? 爲什麼?我如何將相同的面板添加到一些不同的控件中? 謝謝

+0

一個控件只能有一個Parent。你的第二個調用會自動從panel3.Controls集合中刪除它。 – 2014-10-17 11:40:05

回答

3

你的標題說明了一切:

只有一個控制,它只能在一個地方,讀它只能有一個父。

因此,如果你改變了Parent或者Add另一個控制的Controls集合,這是ecxactly同樣的事情,它會從以前的地方消失了。所以雖然Add聽起來並不像它,它相當於一個Move

如果您需要更多控件您需要創建更多控件!當然,他們將不同控件,具有不同的屬性和內容..

您可以有多個控件顯示相同的內容,如果你讓他們同步。具有自動同步的一個主要示例是兩個DataGridviews,兩者具有相同的DataSource。對於其他內容,如文字或圖片,syn'ching取決於您!

您可能會考慮編寫一個克隆函數,它可以創建一個深層副本,但仍然需要執行syn'ing。這也可能是可編碼的,具體取決於細節。或者你可以把它變成一個UserControl並添加新的實例。

相關問題