如何在winforms上使用DotNetBrowser?遇到一些错误[已关闭]

cfh9epnr  于 2023-03-03  发布在  其他
关注(0)|答案(1)|浏览(135)

这个问题是由打字错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
2小时前关门了。
Improve this question
链接到我尝试使用DotNetBrowser制作的示例:
https://www.c-sharpcorner.com/article/embed-google-maps-in-net-desktop-application/
我使用nuget打包程序管理器浏览DotNetBrowser.WinForms并安装了版本2.21.0
然后创建了一个新表单并添加了以下代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using DotNetBrowser.Browser;
using DotNetBrowser.Engine;
using DotNetBrowser.WinForms;
using DotNetBrowser;

namespace Weather
{
    public partial class DotNetBrowserTest : Form
    {
        private BrowserView browserView;

        public GoogleMapWinform()
        {
            InitializeComponent();

            browserView = new BrowserView();
            this.Controls.Add((Control)browserView);
            browserView.Browser.LoadURL("http://microsoft.com");
        }

        private void GoogleMapWinform_Load(object sender, EventArgs e)
        {

        }
    }
}

我在这一行得到错误,浏览器不存在:

browserView.Browser.LoadURL("http://microsoft.com");

错误:
严重代码描述项目文件行隐藏状态错误CS1061“BrowserView”不包含“Browser”的定义,并且找不到接受类型为“BrowserView”的第一个参数的可访问扩展方法“Browser”(是否缺少using指令或程序集引用?)

1qczuiv0

1qczuiv01#

The example you provided使用WinFormsBrowserView,它只存在于DotNetBrowser的早期版本(1.x)中。
对于当前版本,请使用其文档中提供的示例。您需要创建一个IEngine示例,使用该示例创建一个IBrowser示例,并通过browserView.InitializeFrom(browser);将IBrowser传递给BrowserView。
示例取自documentation for DotNetBrowser

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

namespace Embedding.WinForms
{
    /// <summary>
    ///     This example demonstrates how to embed DotNetBrowser
    ///     into a Windows Forms application.
    /// </summary>
    public partial class Form1 : Form
    {
        private const string Url = "https://html5test.com/";
        private readonly IBrowser browser;
        private readonly IEngine engine;

        public Form1()
        {
            // Create the Windows Forms BrowserView control.
            BrowserView browserView = new BrowserView
            {
                Dock = DockStyle.Fill
            };

            // Create and initialize the IEngine instance.
            EngineOptions engineOptions = new EngineOptions.Builder
            {
                RenderingMode = RenderingMode.HardwareAccelerated
            }.Build();
            engine = EngineFactory.Create(engineOptions);

            // Create the IBrowser instance.
            browser = engine.CreateBrowser();

            InitializeComponent();

            // Add the BrowserView control to the Form.
            Controls.Add(browserView);
            FormClosed += Form1_FormClosed;

            // Initialize the Windows Forms BrowserView control.
            browserView.InitializeFrom(browser);
            browser.Navigation.LoadUrl(Url);
        }

        private void Form1_FormClosed(object sender, FormClosedEventArgs e)
        {
            browser?.Dispose();
            engine?.Dispose();
        }
    }
}

相关问题