Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to change the URL using CefSharp WinForms

So, I decided to give CefSharp another go, grabbed the CefSharp.Winforms nuget, and dropped in the following code :

    public CefSharp.WinForms.ChromiumWebBrowser browser;

    public Form1() {
        InitializeComponent();

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

... which works. It creates the webbrowser control, and loads the page (YAY !!). Now, what I want to do, is based on a users selection in a ListView, I want to change the page from http://www.imdb.com to something else. Essentially looking for a way to do the same thing that WebBrowser.Navigate( ... ) from the IE Browser component, but in CefSharp.WinForms.

Seems rather silly (and pointless), if there is no way to change the URL after the browser is initialized, so on that, logically, there must be a way.

browser.Address is as close as I can find within the component itself, but it is a readonly property.

Thanks in advance for any assistance with this matter.

like image 710
Kraang Prime Avatar asked May 24 '15 08:05

Kraang Prime


1 Answers

As pointed out by Majed DH in the comments, the correct solution to this question is:

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

More specifically, a code example on how this is done, is as follows:

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

In CefSharp, the functionally equivalent method to the native WebBrowser controls' Navigate method, is Load.

Footnote: Upon further research, there is no clear indication as to why the developers of the CefSharp project chose to use Load when Navigate more accurately describes the action and is also more consistent with the built-in WebBrowser control's method.

like image 182
Kraang Prime Avatar answered Oct 31 '22 18:10

Kraang Prime