[英]Not getting New Tab in WebBrowser Visual Studio 2012
我有两种形式Form1
和Form2
。
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.