我的问题是我已经在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;
}
如何从添加的表单中以编程方式重命名选项卡?
编辑: 我知道如何从同一个类重命名选项卡。我需要从我在选项卡中打开的表单重命名选项卡。
答案 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; }
}