【问题标题】:c# add tab to tabControl from separate formc#将选项卡从单独的表单添加到tabControl
【发布时间】:2011-12-04 14:54:57
【问题描述】:

好的,我要做的是我有一个表单 MainForm,它有一个 TabControl 和另一个名为 newProject 的表单,我正在尝试在 MainForm 的 TabControl 上创建一个新选项卡。

这是我的 newProject 表单上的代码

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

我不知道为什么它不工作,所以任何帮助将不胜感激,

提前谢谢你, 凯尔

【问题讨论】:

  • 添加 mf.Show(); 以查看添加的选项卡。改用事件。

标签: c#


【解决方案1】:

它不起作用,因为您每次都开始一个新的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);

我不太了解您的名称解决方案。
无论如何,这个想法是,当您创建第二个表单(从主表单)时,您将其传递给您的选项卡控件;因此,在您的第二种形式中,您可以直接向选项卡控件添加一个新选项卡。

【讨论】:

  • 但是如果我把它移到外面它会抛出一个“System.StackOverflowException”类型的未处理异常发生错误。
【解决方案2】:

可能是因为您声明的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);
}

【讨论】:

    猜你喜欢
    • 2020-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多