使用VS2005打造简单分页浏览器
http://tech.ddvip.com 2006年08月02日 社区交流
本文详细介绍使用VS2005打造简单分页浏览器
说明:和菜单栏实现的功能类似,也是一些简单的调用,仅仅是表现形式不同。
初始化
#region//初始化
/// <summary>
/// 初始化
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Form1_Load(object sender, EventArgs e)
{
initMainForm();
}
/// <summary>
/// 初始化浏览器
/// </summary>
private void initMainForm()
{
TabPage mypage = new TabPage();
WebBrowser tempBrowser = new WebBrowser();
tempBrowser.Navigated += new WebBrowserNavigatedEventHandler(tempBrowser_Navigated);
tempBrowser.NewWindow += new CancelEventHandler(tempBrowser_NewWindow);
tempBrowser.StatusTextChanged += new EventHandler(tempBrowser_StatusTextChanged);
tempBrowser.ProgressChanged += new WebBrowserProgressChangedEventHandler(tempBrowser_ProgressChanged);
tempBrowser.Dock = DockStyle.Fill;
tempBrowser.GoHome();//和新建空白页不同
mypage.Controls.Add(tempBrowser);
tabControl1.TabPages.Add(mypage);
}
#endregion
说明:分页浏览器初始化时要定向到主页,虽然我们的浏览器暂时没有提供设置主页的功能。
临时浏览器事件
#region//临时浏览器事件
/// <summary>
/// 临时浏览器状态变化事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void tempBrowser_StatusTextChanged(object sender, EventArgs e)
{
WebBrowser myBrowser = (WebBrowser)sender;
if (myBrowser != getCurrentBrowser())
{
return;
}
else
{
toolStripStatusLabel1.Text = myBrowser.StatusText;
}
}
/// <summary>
/// 在当前页面上重新定向
/// </summary>
/// <param name="address">url</param>
private void newCurrentPageUrl(String address)
{
getCurrentBrowser().Navigate(getUrl(address));
}
/// <summary>
/// 临时浏览器产生新窗体事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void tempBrowser_NewWindow(object sender, CancelEventArgs e)
{
//获取触发tempBrowser_NewWindow事件的浏览器
WebBrowser myBrowser = (WebBrowser)sender;
//获取触发tempBrowser_NewWindow事件的浏览器所在TabPage
TabPage mypage = (TabPage)myBrowser.Parent;
//通过StatusText属性获得新的url
string NewURL = ((WebBrowser)sender).StatusText;
//生成新的一页
TabPage TabPageTemp = new TabPage();
//生成新的tempBrowser
WebBrowser tempBrowser = new WebBrowser();
//临时浏览器定向到新的url
tempBrowser.Navigate(NewURL);
tempBrowser.Dock = DockStyle.Fill;
//为临时浏览器关联NewWindow等事件
tempBrowser.NewWindow += new CancelEventHandler(tempBrowser_NewWindow);
tempBrowser.Navigated += new WebBrowserNavigatedEventHandler(tempBrowser_Navigated);
tempBrowser.ProgressChanged += new WebBrowserProgressChangedEventHandler(tempBrowser_ProgressChanged);
tempBrowser.StatusTextChanged+=new EventHandler(tempBrowser_StatusTextChanged);
//将临时浏览器添加到临时TabPage中
TabPageTemp.Controls.Add(tempBrowser);
//将临时TabPage添加到主窗体中
this.tabControl1.TabPages.Add(TabPageTemp);
//使外部无法捕获此事件
e.Cancel = true;
}
/// <summary>
/// 临时浏览器定向完毕
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void tempBrowser_Navigated(object sender, WebBrowserNavigatedEventArgs e)
{
tscbUrl.Text = getCurrentBrowser().Url.ToString();
WebBrowser mybrowser = (WebBrowser)sender;
TabPage mypage=(TabPage)mybrowser.Parent;
//设置临时浏览器所在tab标题
mypage.Text= newstring(mybrowser.DocumentTitle);
}
#endregion
来源:博客园 作者:zhangjidong 责编:豆豆技术应用