У меня есть tabcontrol, который позволяет создавать новые вкладки. На каждой новой вкладке есть элемент управления веб-браузером CEFSharp. При создании новой вкладки она не отображается, отображается ранее открытая вкладка; чего мы хотим.
Однако браузер на вновь созданной вкладке только добавляется на страницу вкладки и запускается только частично... он не переходит в состояние загрузки, пока не будет показана страница вкладки.
Вот код создания Tabpage
:
private void AddNewBrowser()
{
Log("Adding New Tab and Browser");
UiBrowser browser = new UiBrowser();
TabPage tp = new TabPage();
tp.Controls.Add(browser);
customTabControl1.TabPages.Add(tp);
}
UiBrowser
— это UserControl, который содержит CEFSharp
Browser Control плюс некоторый дополнительный пользовательский интерфейс.
А вот код запуска для самого браузера.
private void UiBrowser_Load(object sender, EventArgs e)
{
Execute();
}
private void Execute()
{
webBrowser = new ChromiumWebBrowser("http://google.co.uk")
{
Dock = DockStyle.Fill,
Text = "Loading...",
Tag = Tag
};
webBrowser.TitleChanged += Browser_TitleChanged;
webBrowser.AddressChanged += Browser_AddressChanged;
webBrowser.ConsoleMessage += Browser_ConsoleMessage;
webBrowser.LoadingStateChanged += Browser_LoadingStateChanged;
webBrowser.StatusMessage += Browser_StatusMessage;
browserPanel.Controls.Add(webBrowser);
Application.DoEvents();
}
Код был упрощен для ясности, и я не нашел решения этой проблемы на SO или где-либо еще.
Вопрос. Как заставить элемент управления браузера загружать веб-страницу, оставаясь в фоновом режиме? То есть, пока TabPage
, на котором находится элемент управления, НЕ отображается пользователю.