从添加的表单重命名选项卡

时间:2016-12-18 18:01:14

标签: c# forms winforms tabcontrol

我的问题是我已经在tabControl中插入了一个标签并向其添加了一个表单(基本上我想显示我打算作为标签打开的所有表单)。

将表单添加到tabControl作为Main类中的选项卡的代码:

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 个答案:

答案 0 :(得分:0)

我想通过将一个引用传递给另一个表单来实现我想要实现的目标。

Form2中的

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;
}
Form1中的

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; }
}