我想用這個辦法將在兩個不同的面板面板:添加同一控制多次在不同的父母
_formMain.panel3.Controls.Add(_formMain.panel1); _formMain.panel4.Controls.Add(_formMain.panel1);
我獲得的是PANEL1只加panel4和它從panel3中刪除。 看來最新的「添加」會覆蓋其他的「添加」。這是真的嗎? 爲什麼?我如何將相同的面板添加到一些不同的控件中? 謝謝
我想用這個辦法將在兩個不同的面板面板:添加同一控制多次在不同的父母
_formMain.panel3.Controls.Add(_formMain.panel1); _formMain.panel4.Controls.Add(_formMain.panel1);
我獲得的是PANEL1只加panel4和它從panel3中刪除。 看來最新的「添加」會覆蓋其他的「添加」。這是真的嗎? 爲什麼?我如何將相同的面板添加到一些不同的控件中? 謝謝
你的標題說明了一切:
有是只有一個控制,它只能在一個地方,讀它只能有一個父。
因此,如果你改變了Parent
或者Add
另一個控制的Controls
集合,這是ecxactly同樣的事情,它會從以前的地方消失了。所以雖然Add
聽起來並不像它,它相當於一個Move
。
如果您需要更多控件您需要創建更多控件!當然,他們將不同控件,具有不同的屬性和內容..
您可以有多個控件顯示相同的內容,如果你讓他們同步。具有自動同步的一個主要示例是兩個DataGridviews
,兩者具有相同的DataSource
。對於其他內容,如文字或圖片,syn'ching取決於您!
您可能會考慮編寫一個克隆函數,它可以創建一個深層副本,但仍然需要執行syn'ing。這也可能是可編碼的,具體取決於細節。或者你可以把它變成一個UserControl並添加新的實例。
一個控件只能有一個Parent。你的第二個調用會自動從panel3.Controls集合中刪除它。 – 2014-10-17 11:40:05