2016-12-18 14 views
-1

私はtabControlにタブを挿入してフォームを追加しました(基本的には、タブとして開くすべてのフォームを表示したいと思っていました)。メインクラスにタブとしてのTabControlにフォームを追加するための名前を変更したフォームからタブを変更

コード:

private void new_form_Click(object sender, EventArgs e) 
    { 
     add = new Add(null); 
     add.TopLevel = false; 
     add.Visible = true; 
     add.FormBorderStyle = FormBorderStyle.None; 
     add.Dock = DockStyle.Fill; 
     var tabIndex = tabControl1.TabCount; 
     tabControl1.TabPages.Insert(tabIndex, "New Tab"); 
     tabControl1.SelectedIndex = tabIndex - 1; 
     tabControl1.TabPages[tabIndex - 1].Controls.Add(add); 
    } 

私はフォームクラスからタイトル名前を変更することは簡単だった複数のフォームを使用していました:

private void surname_Leave(object sender, EventArgs e) 
    { 
     this.Text = surname.Text; 
    } 

方法を追加されたフォームの中からプログラムでタブの名前を変更できますか?

編集: 私は同じクラスからタブの名前を変更する方法を知っています。私はタブで開いたフォームからタブの名前を変更する必要があります。

+1

可能な複製[TabControlのの名前を変更する方法](http://stackoverflow.com/questions/1617251/howタブコントロールの名前を変更する) – Usman

+1

非常に賢明な質問ではありません。テキストを置くフォームのTextChangedイベントを購読してください。自分で把握しなければならないものがあります。ラベルを追加することを検討してください。 –

+0

それは問題です。私が望むところにテキストを置くことはできません。テキストを別のフォームに送ることはできません。メインフォーム。この2番目のフォームをタブから開くフォーム。 – Oiproks

答えて

0

私が達成しようとしていたのは、1つのリファレンスを別のフォームに渡すことで実現しました。 Form2の中

:Form1の中

public Form2() 
{ 
    InitializeComponent(); 
} 

private Form1 mainForm; 
public Form2(Form callingForm) 
{ 
    mainForm = callingForm as Form1; 
    InitializeComponent(); 
} 

private void surname_Leave(object sender, EventArgs e) 
{ 
    mainForm.setTabTitle = surname.Text; 
} 

private void new_form_Click(object sender, EventArgs e) 
{ 
    add = new Add(this); \\this part was missing 
    add.TopLevel = false; 
    add.Visible = true; 
    add.FormBorderStyle = FormBorderStyle.None; 
    add.Dock = DockStyle.Fill; 
    var tabIndex = tabControl1.TabCount; 
    tabControl1.TabPages.Insert(tabIndex, "New Tab"); 
    tabControl1.SelectedIndex = tabIndex - 1; 
    tabControl1.TabPages[tabIndex - 1].Controls.Add(add); 
} 

public string setTabTitle 
{ 
    set { tabControl1.TabPages[tabControl1.SelectedIndex].Text = value; } 
} 
関連する問題