2012-02-03 79 views
1

我正在爲我的問題尋找解決方案。我想更改tabcontrol的TabButtons的位置或添加分配給Tabpage但在TabControl外部的控件。 TabPages是動態添加的。例如:TabControl選項卡按鈕位置

Form1___________ _ [] X 

_______________________ 

Some TabPage content 

Tab1 | Tab2 | Tab3 | < > 

TextBox assigned to Tab's 
________________________ 

所以,如果我通過點擊Tab1Tab2Tab3改變標籤的TabPage +文本框的內容應視標籤更改。第一個想法是將TabButton放在底部,並添加包含TextBox內容的ArrayList,捕獲TabControl更改選項卡事件並更改TextBox內容,但是編輯和添加內容時出現問題。簡而言之:我不想在兩個控件之間放置TabButton(例如在兩個文本框之間)。你有什麼想法嗎?

+0

真的很奇怪的想法! – 2012-02-03 20:53:53

+0

很難說出你想要的。你可以指向一個現有的網站做這樣的事情嗎? – egrunin 2012-02-03 20:56:19

+0

哦,我忘了提及,這是Windows應用程序 – user1112008 2012-02-03 20:58:43

回答

1

如果我明白你問什麼?你想,當你點擊一個標籤,它控制兩個不同的東西?像兩個不同的文本框? 如果這是真的,你應該可以這樣做。

foreach (thing in your ArrayList) 
{ 
    TabPage tabPage = new TabPage("Name of tab");   // Add a new tab page 
    RichTextBox rtb = new System.Windows.Forms.RichTextBox();//RTF box 
    TextBox tb = new System.Windows.Forms.TextBox();   //Text box 

    //Set up size, position and properties 
    rtb.LoadFile("some/Path/to/a/file"); 

    //set up size, position of properties 
    tb.Text = "Some text I want to display"; 

    tabPage.Controls.Add(rtb); //Add both boxes to that tab 
    tabPage.Controls.Add(tb); 

    tabControl1.TabPages.Add(tabPage); //Add that page to the tab control 
} 

只有你應該弄亂的東西是佈局。並確保將tabControl添加到設計器中。

+0

幾乎所有我的意思,但選項卡更改按鈕應該在thos TextBoxes之間。 – user1112008 2012-02-03 21:26:04

+0

您應該可以使用屬性更改位置。 http://stackoverflow.com/questions/2726124/how-to-change-tabpage-position-in-c-net這可能有幫助 – Dave 2012-02-05 16:54:18

1

,你可以創建自己的文本框類,它從文本框類繼承:

class MyOwnTextBox:TextBox 
{ 
    public int parent_tab; 
} 

所以,你可以通過分配parent_tab ID,將其添加您的文本。所以在標籤按鈕點擊事件,你可以做這樣的事情:

foreach(MyOwnTextBox txt in this.Controls) 
{ 
    if(txt.parent_tab==1) txt.visible=false; 
} 
+2

謝謝,但把這個放在「評論」,而不是「答案」 – egrunin 2012-02-03 20:55:07

+0

有些事情對我很好,沒有在上面的帖子中添加評論按鈕對我來說! – sap 2012-02-03 20:56:22

+0

是的,我想控制TabControl控件之外的一個控件(TextBox),或者找到其他方式在控件之間放置TabButton。 – user1112008 2012-02-03 20:57:52

0

我不知道我明白你到底想要做什麼。如果你想從另一個對象更改選項卡,只需使用:

TabController.SelectTab(0); 

如果你想刪除的TabPage,並把它添加到另一個,使用:

TabController.Controls.Remove(TabPage1); 
TabController2.Controls.Add(TabPage1); 

編輯:進一步閱讀,我認爲你想要這樣的事情:

this.TabController.ControlAdded += AddLinksToBottomOfTabs; 
public void mainSettingsTabController_ControlAdded(object sender, ControlEventArgs e) 
{ 
    //Create label with e.Control.Name as the title and 
    //add it to wherever you want it added. 
} 
0

你也可以把選項卡放在你的選項卡控件的左側或右側。這並不完美,但會比將它們放在標籤控件的上方或下方更接近您的想法。

您可以動態地添加一個新的標籤頁這樣

tabControl1.TabPages.Add("My new Tab"); 
相關問題