程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 使用VS2005打造簡單分頁浏覽器(5)

使用VS2005打造簡單分頁浏覽器(5)

編輯:關於C語言

初始化

#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

說明:臨時浏覽器實際上是用程序的方式先new出 一個tempBrowser然後添加到一個分頁中去。其中這個tempBrowser我稱它為臨時 浏覽器。其中void tempBrowser_NewWindow(object sender, CancelEventArgs e){..}事件是比較重要的,我認為它是整個程序的核心部分。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved