2015-05-24 55 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个观点),这就是我离开它的原因。 “解决方案”非常复杂和/或破碎,正如上面的代码所示 - 他们不需要。 –

相关问题