Благодаря JP Hellemons мой браузер теперь может загрузить значок загруженной страницы.
Таким образом, я могу изменить значок моей формы Windows на значоксайт.
Теперь я хотел бы изменить значок формы, когда пользователь переключает вкладки, чтобы значок формы всегда совпадал с видимым сайтом.
Я сделалмаленький код и поместите его в SelectedIndexChanged-event .
Однако, когда я открываю новую вкладку, мой код переключает вкладки, создает элемент браузера внутри вкладки и затем переходит на домашнюю страницу.
Это приводит к ошибке при использовании моего кода, так как метод favicon пока не может найти новый браузер: s
Вот мои коды:
a) Получение значка
b) Изменение значка формы (я поместил этот код в метод SelectedIndexChanged-event)
private void tabs_SelectedIndexChanged(object sender, EventArgs e) { // tabs is the TabControl
this.Icon = favicon(GetActiveBrowser().Url);
}
// this code returns the active WebBrowser-element
private WebBrowser GetActiveBrowser() {
return (WebBrowser)tabs.SelectedTab.Controls[0];
}
c) Код, который создает новую вкладку, когда я нажимаю btnNewTab
private void btnNewTab_Click(object sender, EventArgs e) {
// new tab
TabPage page = new TabPage("... Loading ...");
tabs.TabPages.Add(page);
this.Icon = Properties.Resources.loading1;
tabs.SelectedTab = page;
// include browser
WebBrowser browser = new WebBrowser();
browser.Parent = page;
browser.Dock = DockStyle.Fill;
browser.Visible = true;
browser.DocumentCompleted += new System.Windows.Forms.WebBrowserDocumentCompletedEventHandler(this.browser_DocumentCompleted);
browser.StatusTextChanged += new EventHandler(browser_StatusTextChanged);
browser.DocumentTitleChanged += new EventHandler(browser_DocumentTitleChanged);
browser.ProgressChanged += new WebBrowserProgressChangedEventHandler(browser_ProgressChanged);
browser.ContextMenuStrip = contextBrowser;
navigate(Properties.Settings.Default.BrowserHome);
} // open URL in new tab
Вопрос простой, ответ кажется более сложным:
Как я могу заставить свою форму ждать, пока элемент WebBrowser не будет создан, прежде чем искать значок?