2010-06-01 42 views
1

在我的previous question我可以添加一個設計時間面板到運行時的標籤頁,我的代碼看起來像這樣,它工作正常。將相同的面板添加到多個TabPages

 tabControl1.SuspendLayout(); 
     tabControl1.TabPages[0].Controls.Add(panel1); 
     tabControl1.ResumeLayout(); 

但現在我需要做的是這樣的:

tabControl1.SuspendLayout(); 
    tabControl1.TabPages[0].Controls.Add(panel1); 
    tabControl1.TabPages[1].Controls.Add(panel1); 
    tabControl1.TabPages[2].Controls.Add(panel1); 
    tabControl1.ResumeLayout(); 

剛剛在運行時我可以知道有多少這樣的TabPages我需要的。但現在測試我假設我將有三個的TabPages

問題是面板只被添加到最後標籤頁, 我怎樣才能解決這個問題?我希望它被添加到所有標籤頁 謝謝。

回答

5

你不能。一個控件一次只能有一個父對象。幸運的是,一次只能看到一個標籤頁,所以我猜你可以在顯示頁面之間移動面板?另一方面,如果面板要位於所有頁面的相同位置,也許它不應該將置於的選項卡控件中,而是將置於之上呢?

+0

好的,謝謝,所以我想我應該這樣做:面板的父應該首先是TabPage [0],因爲至少我會有一個頁面,用戶會首先看到它。 ...但在TabPageChange事件我應該將該面板的父母更改爲TabPage [currentTabIndex] 這是好嗎? – Bohn 2010-06-01 21:26:53

+0

@BDotA:我認爲應該有效。我會試一試,看看它是如何運作的。 – 2010-06-01 21:28:56

+0

@FredrikMörk優秀的概念 - 我能夠將其應用到我的vb.net項目中:我發現的一件事情可能需要澄清的是,當你說「在控件之上」時,我發現更容易定位我的面板,它重疊在選項卡控件的頂部,然後我調整了面板的大小以適應選項卡的範圍。我最初的嘗試就是將面板放置在標籤的頂部(和內部)上 - 它需要放在標籤的外面才能使用。 – redhotspike 2012-12-06 14:36:43

相關問題