2012-02-03 17 views
1

私の問題の解決策を探しています。私はtabControlのTabButtonsの場所を変更するか、TabControlの外にタブコントロールに割り当てられたコントロールを追加したいと思います。タブページは動的に追加されます。例:TabControlタブのボタンの場所

Form1___________ _ [] X 

_______________________ 

Some TabPage content 

Tab1 | Tab2 | Tab3 | < > 

TextBox assigned to Tab's 
________________________ 

私は、Tab2Tab1をクリックすることでタブを変更した場合ので、Tab3のTabPage +テキストボックスの内容は、タブに応じて変更する必要があります。最初のアイデアは、TabButtonを最下部に置き、TextBoxコンテンツを含むものをArrayListに追加し、TabControlの変更タブイベントをキャッチしてTextBoxコンテンツを変更することでしたが、そのコンテンツの編集と追加に問題がありました。いくつかの言葉では、私は2つのコントロール(例えば、2つのテキストボックスの間)の間にTabButtonsを置くことはしませんでした。

class MyOwnTextBox:TextBox 
{ 
    public int parent_tab; 
} 

だから、あなたがそれらにparent_tab IDを割り当てることで、あなたのテキストボックスを追加することができます。

+0

本当に奇妙なアイデア! –

+0

あなたが望むものを言うのは難しいです。このようなことをしている既存のウェブサイトを指すことができますか? – egrunin

+0

ああ、忘れてしまいましたが、これはWindowsアプリケーションです – user1112008

答えて

1

のように動的に新しいタブページを追加することができますか? 2つの異なるテキストボックスのように? これが本当であれば、あなたはこのようにすることができるはずです。

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

私が意味するものはほぼすべてですが、タブ変更ボタンはテキストボックス間にある必要があります。 – user1112008

+0

プロパティで位置を変更できるはずです。 http://stackoverflow.com/questions/2726124/how-to-change-tabpage-position-in-c-netこれは役立つかもしれません – Dave

1

あなたはテキストボックスのクラスから継承し、独自のテキストボックスのクラスを作成することができます。タブボタンのクリックイベントでは、次のようなことができます。

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

ありがとう、しかし、これは "コメント"ではなく、 "答え" – egrunin

+0

私には非常に良いことですが、上の投稿にコメントの追加ボタンがありません! – sap

+0

はい、私は、TabControlコントロールの外にあるコントロール(TextBox)をコントロールするか、TabButtonsをコントロール間に置く方法を探します。 – user1112008

0

私はあなたのやりたいことを正確に理解していません。あなたが別のオブジェクトからのタブを変更したい場合は、単に使用:

TabController.SelectTab(0); 

あなたがのTabPageを削除し、別の、使用にそれを追加したい場合は、次の

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

編集:さらに読み取りから、I

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"); 
関連する問題