如何使用CefSharp WinForms更改URL

时间:2015-05-24 08:41:24

标签: 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 );
    }

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

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

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

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

1 个答案:

答案 0 :(得分:14)

正如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" );
}

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

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