使用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    责编:豆豆技术应用

正在加载评论...