2014-02-16 127 views
0

我想在C#VS項目中使用選項卡控件。標籤應該都包含大量的控件。這些選項卡是動態生成的。所以我想要做的是設計一個包含使用設計器的所有控件的面板。然後,在運行時創建新選項卡時,我想將面板(或其所有控件)複製到新選項卡。在VS C#項目中複製控件

我想我必須創建一個代表面板的新類。如果打開了一個新選項卡,我將生成該類的新實例並將此面板控件添加到新選項卡。

他們我有兩個問題: 1.我的理解是否正確或您是否需要以另一種方式進行操作? 2.如何創建一個代表具有控件的面板的類?如果我在設計器中執行此操作,我將創建兩個窗體窗體,一個窗體包含選項卡控件,另一個窗體窗體包含具有示例控件的面板。但是這種方式面板是Windows窗體的一部分,自動生成的類也表示一個包含帶控件的面板的窗體。所以這個類的一個實例是一個窗體,而不是一個面板。所以我不能將它添加到標籤。

你能幫我解決這個問題嗎(我對c#和oo編程頗爲陌生)?

P.S .:我想你也可以遍歷面板的所有控件,並將它們添加到另一個面板。你做這件事會容易嗎?那麼你會怎麼做呢?

+0

只需創建一個UserControl。 –

回答

1

您不打算創建兩個窗體窗體,但一個窗體包含選項卡控件,另一個窗體包含該面板。

public class MainForm : Forms 
{ 

} 

public class MyPanel: UserControl 
{ 
} 

您可以拖動&在設計時拖動UserControl。並且在運行時中,初始化UserControl的一個實例,然後將其添加到新選項卡。

newTab.Controls.Add(new MyPanel()); 
+0

好的,謝謝你的提示!一旦你知道如何做到這一點很容易實現。 –

0

你當然可以創建一個用戶控件,並把所有的控件放在這個單獨的控件中。

如果您的不同標籤有很大的共同點,那麼您可以通過將所有常用控件加上額外的控件放在單個用戶控件中並根據不同的標籤條件動態隱藏和顯示用戶控件的內部控件。好處是您將只創建一個控件,該控件將根據條件適用於不同的選項卡。

否則,只需根據標準爲每個選項卡選擇不同的用戶控制並動態添加它們即可。

希望這會有所幫助。