如何使用CefSharp WinForms更改URL

Kra*_*ime 7 c# winforms chromium-embedded

所以,我决定给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 );
    }
Run Code Online (Sandbox Code Playgroud)

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

看起来相当愚蠢(而且没有意义),如果在浏览器初始化之后无法更改URL,那么从逻辑上讲,必须有一种方法.

browser.Address 尽可能接近组件本身,但它只是一个readonly属性.

提前感谢您对此事的任何帮助.

Kra*_*ime 17

正如Majed DH在评论中指出的那样,对这个精确而非常明确的问题的正确解决方案是:

WPF版本中有一个ChromiumWebBrowser.Load(字符串url).我认为它也可能存在于winform版本中. - Majed DH 5月24日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" );
}
Run Code Online (Sandbox Code Playgroud)

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

脚注: 经过进一步研究,没有明确的迹象表明为什么CefSharp项目的开发人员LoadNavigate更准确地描述操作时选择使用,并且与内置的WebBrowser控件的方法更加一致.

  • 不是我不同意,但仍然很有趣,你在自己的答案中将自己的问题描述为"精确且非常清晰" (5认同)
  • 在 WPF `WindowsFormsHost` 中使用 `CefSharp.WinForms.ChromiumWebBrowser` 时,`Load` 方法的使用对我不起作用。 (2认同)