web-dev-qa-db-ja.com

CefSharpWinFormsを使用してURLを変更する方法

そこで、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 );
    }
_

...動作します。 Webブラウザコントロールを作成し、ページをロードします(YAY !!)。さて、私がやりたいのは、ListViewでのユーザーの選択に基づいており、ページを_http://www.imdb.com_から別のものに変更したいと思います。本質的には、IE BrowserコンポーネントからWebBrowser.Navigate( ... )と同じことを行う方法を探していますが、CefSharp.WinForms内にあります。

ブラウザの初期化後にURLを変更する方法がない場合は、かなりばかげている(そして無意味な)ようです。そのため、論理的には、必須方法があります。

_browser.Address_は、コンポーネント自体の中で見つけることができる限り近いですが、読み取り専用のプロパティです。

この件に関してご協力いただきありがとうございます。

8
Kraang Prime

コメントでMajedDHが指摘しているように、この正確で非常に明確な質問に対する正しい解決策は次のとおりです。

WPFバージョンにはChromiumWebBrowser.Load(string 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コントロールのメソッドとの整合性も向上しています。

17
Kraang Prime