如何使用 CefSharp WinForms 更改 URL

How to change the URL using CefSharp WinForms

所以,我决定再试一次 CefSharp,抓住 CefSharp.Winforms nuget,并放入以下代码:

    public CefSharp.WinForms.ChromiumWebBrowser browser;

    public Form1() {
        InitializeComponent();

        browser=new CefSharp.WinForms.ChromiumWebBrowser( "http://www.imdb.com" ) {
            Dock=DockStyle.Fill,
        };
        tabPage2.Controls.Add( browser );
    }

... 有效。它创建 webbrowser 控件,并加载页面(YAY !!)。现在,我想做的是基于 ListView 中的用户选择,我想将页面从 http://www.imdb.com 更改为其他内容。本质上是在寻找一种方法来从 IE 浏览器组件中执行与 WebBrowser.Navigate( ... ) 相同的操作,但在 CefSharp.WinForms.

看起来很愚蠢(而且毫无意义),如果在浏览器初始化后没有办法更改URL,那么按理说,必须成为一种方式。

browser.Address 是我在组件本身中所能找到的最接近的,但它是只读的 属性.

在此先感谢您对此事的任何帮助。

正如Majed DH在评论中所指出的,这道题的正确解法是:

There is a ChromiumWebBrowser.Load(string url) in WPF version . i think it may be there in winform version too. – Majed DH May 24 at 10:29

更具体地说,有关如何完成此操作的代码示例如下:

public CefSharp.WinForms.ChromiumWebBrowser browser;

public Form1() {
    InitializeComponent();

    browser=new CefSharp.WinForms.ChromiumWebBrowser( "http://www.imdb.com" ) {
        Dock=DockStyle.Fill,
    };
    this.Controls.Add( browser );

    // Simply pass the URL you wish to navigate to, to the 'Load' method
    browser.Load( "http://www.google.ca" );
}

在 CefSharp 中,与本机 WebBrowser 控件的 Navigate 方法功能等效的方法是 Load.

脚注: 经进一步研究,没有明确说明为什么 CefSharp 项目的开发人员选择使用 Load,而 Navigate 更准确地描述了操作,也更符合内置 WebBrowser 控件的方法.