首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

使用 VS2005 打造簡單分頁瀏覽器 (5) - 初始化與暫時瀏覽器事件處理

     編輯:關於C語言

初始化流程

private void Form1_Load(object sender, EventArgs e) { initMainForm(); }

private void initMainForm()
{
    TabPage mypage = new TabPage();
    WebBrowser tempBrowser = new WebBrowser();
    
    tempBrowser.Navigated += tempBrowser_Navigated;
    tempBrowser.NewWindow += tempBrowser_NewWindow;
    tempBrowser.StatusTextChanged += tempBrowser_StatusTextChanged;
    tempBrowser.ProgressChanged += tempBrowser_ProgressChanged;
    
    tempBrowser.Dock = DockStyle.Fill;
    tempBrowser.GoHome(); // 與新建空白頁不同
    
    mypage.Controls.Add(tempBrowser);
    tabControl1.TabPages.Add(mypage);
}

啟動時導向首頁(雖未提供設定首頁功能)。

暫時瀏覽器事件處理核心

NewWindow 事件 - 程式核心

void tempBrowser_NewWindow(object sender, CancelEventArgs e)
{
    WebBrowser myBrowser = (WebBrowser)sender;
    TabPage mypage = (TabPage)myBrowser.Parent;
    string NewURL = myBrowser.StatusText; // 取得新視窗 URL
    
    TabPage TabPageTemp = new TabPage();
    WebBrowser tempBrowser = new WebBrowser();
    tempBrowser.Navigate(NewURL);
    tempBrowser.Dock = DockStyle.Fill;
    
    // 重新掛載事件
    tempBrowser.NewWindow += tempBrowser_NewWindow;
    tempBrowser.Navigated += tempBrowser_Navigated;
    tempBrowser.ProgressChanged += tempBrowser_ProgressChanged;
    tempBrowser.StatusTextChanged += tempBrowser_StatusTextChanged;
    
    TabPageTemp.Controls.Add(tempBrowser);
    this.tabControl1.TabPages.Add(TabPageTemp);
    e.Cancel = true; // 阻止外部捕獲
}

其他事件

  • Navigated:更新網址列、分頁標題
  • StatusTextChanged:狀態列顯示,僅處理當前分頁
  • ProgressChanged:進度條更新
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved