繁体   English   中英

WebBrowser Visual Studio 2012中未获取新选项卡

[英]Not getting New Tab in WebBrowser Visual Studio 2012

我有两种形式Form1Form2

Form1具有一个WebBrowser,而Form2包含选项卡代码。

在加载的Form1 ,我保留了以下代码来获取第一个选项卡:

public void Form1_Load(object sender, EventArgs e)
        {
            TabPage t = new TabPage();
            Form2 newtab = new Form2();
            newtab.Show();
            newtab.TopLevel = false;
            newtab.Dock = DockStyle.Fill;
            t.Controls.Add(newtab);
            tabControl1.TabPages.Add(t);
        }

一切正常。 现在在Form2我有一个菜单项,单击该菜单项将打开新选项卡。 其代码如下:

 public void addTabToolStripMenuItem_Click(object sender, EventArgs e)
        {
            TabPage t = new TabPage();
            Form2 newtab = new Form2();
            newtab.Show();
            newtab.TopLevel = false;
            newtab.Dock = DockStyle.Fill;
            t.Controls.Add(newtab);
            Form1 b = new Form1();
            b.tabControl1.TabPages.Add(t);
         }

但是我没有新的标签。 即,当我单击菜单项时,没有任何反应。

您将在单击处理程序中创建一个新的Form1, 而不是用来创建Form2实例的Form1。最好的选择是使用Show方法,该方法允许您设置拥有的表单,并且TabControl的修饰符是公开的,它将起作用。 恕我直言,这真的不是要走的路。 我会考虑创建一个事件并订阅它。

public void Form1_Load(object sender, EventArgs e)
{
    TabPage t = new TabPage();
    Form2 newtab = new Form2();
    newtab.Show(this);          //note the change here
    newtab.TopLevel = false;
    newtab.Dock = DockStyle.Fill;
    t.Controls.Add(newtab);
    tabControl1.TabPages.Add(t);
}

这将使您能够执行此操作:

((Form1)this.Owner).tabControl1.TabPages.Add(t);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM