2011-05-02 32 views
0

我GOOGLE了這個,仍然不能得到它的工作。我知道如何使用工具箱添加選項卡。我也讀過關於如何以編程方式做到這一點,但我仍然沒有得到它。 (MSVC#Express 2010)如何在運行時以編程方式將Tab添加到窗體?

我有一個簡單的項目設置。只是一個帶有TabControl的窗體,我使用Designer來添加一個新的TabControl,並將該TabControl公開而不是私有。

我將此代碼寫入 a)訪問Windows窗體 b)添加一個tabpage。

代碼編譯得很好,但在運行時不顯示Tabpage。

static class Program 
{ 
    [STAThread] 
    static void Main() 
    { 
     Application.SetCompatibleTextRenderingDefault(false); 
     Application.EnableVisualStyles(); 
     Form1 ApplicationMainForm = new Form1(); 
     Application.Run(ApplicationMainForm); //LABEL B 

     ApplicationMainForm.tabControl1.TabPages.Add("MyPage"); //LABEL A 
    } 
} 

如何獲取表單以顯示我的Tabpage? 當A行和B行改變位置時,我的TabPage被顯示。我是否缺少更新方法,oder是TabPage添加從未調用,直到應用程序關閉?

編輯#1:一些小的編輯。 編輯#2:編輯一些更多的示例代碼。 編輯#3:刪除了一些較早/相關的點。 編輯#4:發現提示和編輯這些信息在

+0

您能否顯示您迄今嘗試的代碼?目前還不完全清楚你想要做什麼以及你的問題是什麼。 – 2011-05-02 13:57:44

+0

當程序崩潰時你會得到一個異常嗎?如果是這樣,請在此發佈。 – 2011-05-02 13:58:52

+0

解決了謎題。我以某種方式假定表單在自己的線程中運行 - 事實並非如此。 添加作品很好,我只需要重新考慮我想讓我的程序工作。我會接受第一個回答說:) :) – Johannes 2011-05-02 14:58:42

回答

1
Form1.tabControl1.Controls.Add(myNewTabItem); 

標籤控件是標籤頁的集合,讓你添加標籤頁就像你添加任何控制的集合。請注意,標籤以您添加它們的順序顯示。

+0

另請參閱 [TabControl](https://msdn.microsoft.com/en-us/library/system.windows.forms.tabcontrol(v = vs.110).aspx) 和 [ControlCollection](https: //msdn.microsoft.com/en-us/library/system.windows.forms.control.controlcollection.add(v=vs.110).aspx) – woodvi 2018-02-21 18:10:56

0

如果您試圖在運行時添加一個選項卡到窗體,可能問題是您試圖調整窗體定義而不是特定的實例這是您目前正在顯示的形式。當表單被打開時,它是表單定義的一個實例。您必須找到該實例才能修改其屬性。因此,您必須通過類似引用變量的方式讓程序的其他部分以某種方式瞭解表單的特定實例。

+0

是的,這與它有關...我嘗試初始化像這樣Form XYZ = new Form1(); ...什麼都行不通。另一個是我在初始化之前沒有調用渲染默認值。 – Johannes 2011-05-02 14:14:07

相關問題