一个 tabControl + WebBrowser,求高手指点,非常感谢!

bear63 2009-11-20 11:31:28
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace test
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
PrintHelpPage("http://www.psno1.com");
PrintHelpPage("http://www.baidu.com");
PrintHelpPage("http://www.google.com");
PrintHelpPage("http://www.yahoo.com.cn");
PrintHelpPage("http://www.bing.com");
}

private void PrintHelpPage(string websiteurl)
{
WebBrowser wb = new WebBrowser();
wb.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(PrintDocument);
//如何构造 wb的NewWindows事件呢?
wb.Navigate(websiteurl);
wb.Dock = DockStyle.Fill;
wb.ScriptErrorsSuppressed = true;
if (websiteurl.Length > 10)
{
tabControl1.TabPages.Add(websiteurl.Substring(0, 10) + "...");
}
else
{
tabControl1.TabPages.Add(websiteurl);
}
tabControl1.TabPages[tabControl1.TabPages.Count - 1].Controls.Add(wb);
}

private void PrintDocument(object sender, WebBrowserDocumentCompletedEventArgs e)
{
//已知 ((WebBrowser)sender).DocumentTitle 获取标题!
//如何让 tabControl1 每个选项卡的标题对应相应的网页
//例如第一个选项卡是"设计一线网站标题",第二个选项卡是"百度",第三个选项卡是"Google" ... ...
}

}
}


如题!
//如何构造 wb的NewWindows事件呢?
//已知 ((WebBrowser)sender).DocumentTitle 获取标题!
//如何让 tabControl1 每个选项卡的标题对应相应的网页
//例如第一个选项卡是"设计一线网站标题",第二个选项卡是"百度",第三个选项卡是"Google" ... ...
...全文
127 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
蒋晟 2009-11-21
  • 打赏
  • 举报
回复
捕获DWebBrowserEvents2::NewWindow2
参考http://www.codeproject.com/KB/cpp/ExtendedWebBrowser.aspx
bear63 2009-11-20
  • 打赏
  • 举报
回复
但好像不在新窗口打开!

而是在原来的窗口打开新的窗口!

继续等待高人指点!
bear63 2009-11-20
  • 打赏
  • 举报
回复
构造 NewWindow 事件已经完成
wb.NewWindow += new CancelEventHandler(wb_NewWindow);

void wb_NewWindow(object sender, CancelEventArgs e)
{
PrintHelpPage(((WebBrowser)sender).StatusText);
}
bear63 2009-11-20
  • 打赏
  • 举报
回复
高手就是高手!

致敬!
noway8881 2009-11-20
  • 打赏
  • 举报
回复
[Quote=引用楼主 bear63 的回复:]
//如何构造 wb的NewWindows事件呢?
            //已知 ((WebBrowser)sender).DocumentTitle 获取标题!
            //如何让 tabControl1 每个选项卡的标题对应相应的网页
            //例如第一个选项卡是"设计一线网站标题",第二个选项卡是"百度",第三个选项卡是"Google" ... ...
[/Quote]

private void PrintHelpPage(string websiteurl)
{
WebBrowser wb = new WebBrowser();
wb.Navigated+=new WebBrowserNavigatedEventHandler(PrintDocument);
//如何构造 wb的NewWindows事件呢?
wb.Dock = DockStyle.Fill;
wb.ScriptErrorsSuppressed = true;
if (websiteurl.Length > 10)
{
tabControl1.TabPages.Add(websiteurl.Substring(0, 10) + "...");
}
else
{
tabControl1.TabPages.Add(websiteurl);
}
tabControl1.TabPages[tabControl1.TabPages.Count - 1].Controls.Add(wb);
wb.Navigate(websiteurl);
}

private void PrintDocument(object sender, WebBrowserNavigatedEventArgs e)
{
//已知 ((WebBrowser)sender).DocumentTitle 获取标题!
//如何让 tabControl1 每个选项卡的标题对应相应的网页
//例如第一个选项卡是"设计一线网站标题",第二个选项卡是"百度",第三个选项卡是"Google" ... ...
WebBrowser wb = sender as WebBrowser;
((TabPage)wb.Parent).Text = wb.DocumentTitle;
}
wapdos 2009-11-20
  • 打赏
  • 举报
回复
如何让 tabControl1 每个选项卡的标题对应相应的网页
tabcontrol有个SelectedIndexChanged事件,在该事件中选择SelectedIndexChanged
然后在代码中写事件
private void SelectedIndexChanged(object sender, EventArgs e)
{
switch (this.tabControl1.SelectedIndex)
{
case 0:
显示的是TabPage1,做你想做的事情 如设计一线网站标题
break;
case 1:
显示的是TabPage2,做你想做的事情 如百度

break;
case 2:
。。。。
break;
case 3:
。。。。。。
break;

111,120

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧