首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C# 簡易瀏覽器開發入門:WebBrowser 控制項基礎與常見坑點

     編輯:程式設計綜合問答

核心控制項:WebBrowser

WinForms 內建 System.Windows.Forms.WebBrowser,封裝 IE/Edge (IE 模式) 渲染引擎。

最小可行程式

public class SimpleBrowser : Form {
    private WebBrowser wb = new WebBrowser { Dock = DockStyle.Fill };
    private TextBox txtUrl = new TextBox { Dock = DockStyle.Top };
    private Button btnGo = new Button { Text = "前往", Dock = DockStyle.Top };

    public SimpleBrowser() {
        Controls.Add(wb); Controls.Add(txtUrl); Controls.Add(btnGo);
        btnGo.Click += (s,e) => wb.Navigate(txtUrl.Text);
        wb.DocumentCompleted += (s,e) => txtUrl.Text = wb.Url?.ToString();
        wb.Navigate("https://www.google.com");
    }
}

常見問題與解決

現象原因對策
空白視窗、無內容未呼叫 Navigate、或 URL 格式錯誤(缺 https://)確保 Navigate 完整 URL,預設載入首頁
Script 錯誤彈窗現代 JS (ES6+, fetch, Promise) IE 引擎不支援注冊 HKCU\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION 設定 你的exe.exe = 11001 (IE11 模式)
HTTPS 憑證錯誤WebBrowser 不自動信任自簽憑證測試環境忽略:實作 IServiceProvider + IHttpSecurity,或改用 CefSharp/WebView2
無法存取 DOMDocumentCompleted 尚未觸發、或跨框架限制在 DocumentCompleted 事件中操作 wb.Document

現代替代方案(強烈建議)

  • CefSharp.WinForms:嵌入 Chromium,支援完整現代 Web 標準、GPU 加速、開發者工具。
    Install-Package CefSharp.WinForms
  • Microsoft.WebView2:嵌入 Edge (Chromium),原生 WinForms/WPF 支援,體積小、啟動快、Windows 10+ 系統內建運行時。
    Install-Package Microsoft.Web.WebView2

學習資源

從 WebBrowser 起步理解基本架構,實務專案請直接採用 WebView2,避開 IE 相容性泥沼。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved