c#从单独的表单向tabControl添加制表符
本文关键字:tabControl 添加 制表符 表单 单独 | 更新日期: 2023-09-27 18:16:41
好的,我要做的是我有一个名为MainForm的表单,它有一个TabControl和另一个名为newProject的表单,我想在MainForm的TabControl上创建一个新的选项卡。
这是我的newProject Form
的代码void wizard1_FinishButtonClick(object sender, CancelEventArgs e)
{
MainForm mf = new MainForm();
createTab();
this.Hide();
}
void createTab()
{
MainForm mf = new MainForm();
string name = textBoxX1.Text;
SuperTabItem tab = mf.ProjectTabControl.CreateTab(name);
}
下面是MainForm
的代码public SuperTabControl ProjectTabControl
{
get
{
return projectTabControl;
}
}
private void newProjectTab_Click(object sender, EventArgs e)
{
newproject.Show();
}
public void AddTab()
{
string s = "New File " + NewTab++;
this.ProjectTabControl.Tabs.Add(new BPSTabItem(s));
textEditor();
}
我不知道为什么它不工作,所以任何帮助都会很感激,
提前谢谢你,凯尔
它不工作,因为你每次启动一个新的MainForm
void createTab()
{
MainForm mf = new MainForm();
}
你可以这样做:
TabControl tc = null;
public newProject(TabControl tc)
{
this.tc = tc;
}
void createTab()
{
string name = textBoxX1.Text;
// Add tab to tc
}
在MainForm中,你可以使用
newProject frm = new newProject(my_tab_control);
我不太明白你对名字的解决方案。
无论如何,这个想法是,当你创建你的第二种形式(从主要一个)你传递一个引用到你的标签控件;所以在第二个表单中,你可以直接给TAB控件添加一个新的TAB
可能是因为您声明的MainForm
只存在于createTab()
函数的作用域中。不是实例化MainForm
的新对象,而是将您在wizard1_FinishButtonClick
中创建的MainForm
对象传递给createTab()
方法。这样的:
void wizard1_FinishButtonClick(object sender, CancelEventArgs e)
{
MainForm mf = new MainForm();
createTab(mf);
this.Hide();
}
void createTab(MainForm mf)
{
string name = textBoxX1.Text;
SuperTabItem tab = mf.ProjectTabControl.CreateTab(name);
}