我有一个我自己做的你留邮箱我给你
关于你的问题,我不知道你注意没有tabpage有一个属性是用来储存当前获得焦点的那个页面的索引值的。你只要建立一个泛型的浏览器集合(用list)
List
关闭当前的tabpage 你可以这样:
this.webNew[tabControl1.SelectedIndex].Dispose ( );//析构当前浏览器
this.webNew.Remove ( this.webNew[tabControl1.SelectedIndex] );
tabControl1.TabPages[tabControl1.SelectedIndex].Dispose ( );//析构当前标签页
这样我们就能进行匿名处理这些个浏览器控件了
这个方法绝对可行我告诉你,因为我就这样做的。(现在只差最难的收藏夹了)
一定要用List,因为list是动态数组,它的索引时可变化的,如果你拿array来定义集合就糟糕了。。。
我有全套源码,留邮箱吧
首先在窗体中添加一个combox和一个webbrowser,代码如下
初始化:
Code
前进浏览comboBox1.text代表的url
1 private void button1_Click(object sender, EventArgs e)
2 {
3 string url = comboBox1.Text.Trim();
4
5 webBrowser1.Navigate(url);
6 }
返回前一个浏览的网页
1//后退
2 private void button2_Click(object sender, EventArgs e)
3 {
4 webBrowser1.GoBack();
5
6 }
点击网页中的链接,不在启动IE,而是使用webbrowser继续浏览
Code4
//每次浏览网页后,combox_url中的文本变成当前网页的url
private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e)
{
comboBox1.Text = webBrowser1.Url.ToString();
}
当你截获webBrowser1中点击的链接的时候
tabcontrol中添入tabpage并置为选中
在这个新tabpage中加入一个新的webBrowser并使其的
导航uri为你捕获的链接
你写的太长 没仔细看
但是我想问题应该出在这里
你所使用的所有的tabpages都装载着同一个webBrowser1对吧
这样的话....
在你所打开的tabpage里不论那个转向,都会引起webBrowser1的变化对吧?
这样问题不是出来了么?
至于选中问题,直接tabcontrols.selectindex=tabControl1.TabPages.Count-1
这样就能搞定
关闭也是一样的做法,通过TabPages.Count遍历tabControl1.pages,我没关过pages
但是我十分肯定有这样的方法