2015-05-24 74 views
3

所以,我決定給CefSharp別的去了,抓起CefSharp.Winforms的NuGet更改URL,並在下面的代碼刪除:如何使用CefSharp的WinForms

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與組件本身的距離相近,但是它是隻讀屬性。

在此先感謝您對此事的任何幫助。

+2

在WPF版本中有'ChromiumWebBrowser.Load(string url)'。我認爲它也可能在winform版本中。 –

回答

9

正如評論所指出的馬吉德·DH,正確地解決了這個精確和清晰的問題是:

有一個ChromiumWebBrowser.Load(字符串URL)在WPF版本。 i 認爲它也可能在winform版本中。 - 馬吉德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中,功能上等同的方法,將原生Web瀏覽器控件'Navigate方法,是Load

腳註: 經進一步研究,也沒有明確的指示至於爲什麼CefSharp項目的開發商選擇使用LoadNavigate更準確地描述了行動,也與內置的WebBrowser控件的更加一致方法。

+1

當在WPF「WindowsFormsHost」中使用'CefSharp.WinForms.ChromiumWebBrowser'時,'Load'方法的用法不適用於我。 – Eido95

+2

不是我不同意,但仍然有趣的是,你在自己的回答中將自己的問題描述爲「確切而清楚」 – andersand

+0

@andersand - 可以理解的是,沒有先前的歷史記錄,它是如何發生的 - 有些評論被刪除,另外還有一些人他們認爲缺乏明確性是不能提供解決方案的原因(或者不能解決問題)。我相信你已經注意到CEF誇大了結果,「僅僅使用它」,但很少或沒有功能文檔。我覺得這是社區需要的東西(目前有8000個觀點),這就是我離開它的原因。 「解決方案」非常複雜和/或破碎,正如上面的代碼所示 - 他們不需要。 –

相關問題