【问题标题】:Open a Webpage inside a C# form (winforms)在 C# 表单中打开网页(winforms)
【发布时间】:2025-11-23 09:55:01
【问题描述】:

是否可以在 winforms 应用程序中打开网页?

我想到了将某种网络驱动程序导入应用程序。 另外,我尝试在我的应用程序中打开浏览器的一个实例,但它完全在不同的窗口中打开。

我在使用 WebBrowser 控件时面临以下限制:

  1. 我无法计算页面加载时间。
  2. 在某些媒体格式的媒体中存在丢帧现象。

【问题讨论】:

  • 您可以简单地使用默认的WebBrowser 控件。但似乎您正在尝试解决另一个问题。描述为什么您要在 C# 表单中打开网页。
  • @YeldarKurmangaliyev 我知道 WebBrowser 控件可以在 winform 应用程序中打开基本网页。但媒体流在此控件中失败。
  • 如果标准控件不起作用,并且您不能使用第三方控件,我不确定您认为我们能提供哪些帮助?

标签: c# winforms


【解决方案1】:

看看DotNetBrowser 库。它提供了基于 Chromium 的 WPF 和 WinForms 浏览器控件,这些控件很容易嵌入到 .NET 应用程序中。它支持所有现代网络标准,包括 HTML5、CSS3 和 JavaScript。呈现的页面看起来与 Google Chrome 中的完全一样。 该库是商业的,但它可以免费用于开源和学术项目。 可用NuGet package

using System.Windows.Forms;
using DotNetBrowser;
using DotNetBrowser.WinForms;

namespace WinForms.DotNetBrowser
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            BrowserView browserView = new WinFormsBrowserView();
            Controls.Add((Control) browserView);
            browserView.Browser.LoadURL("http://www.youtube.com");
        }
    }
}

【讨论】:

  • 感谢您的时间和努力。但在我的情况下,我不能使用第三方库。
【解决方案2】:

是的,绝对有可能...您可以使用WebBrowser 控制来做到这一点。将其放入您的表单并调用Navigate 方法:

browser.Navigate("http://www.google.com");

【讨论】:

  • WebBrowser 控件有一些限制,限制了我使用它。
  • 限制之类的?
【解决方案3】:

有两种选择:-

  • WebBrowser 控件

使用 WebBrowser 控件,您可以将 Web 浏览器功能添加到您的应用程序中。默认情况下,该控件的工作方式类似于 Web 浏览器。

CefSharp 是将功能齐全的符合标准的网络浏览器嵌入到 C# 或 VB.NET 应用程序中的最简单方法。

【讨论】:

  • CefSharp 似乎是一个很有前途的框架。非常感谢您的时间和努力。但我不能在我的项目中使用第三方库或框架。