Встроенный веб-браузер в проекте Windows Form C # - PullRequest
3 голосов
/ 09 июня 2011

У меня есть форма со встроенным веб-браузером. В настоящее время я использую WebBrowser и использую его так:

webBrowser1.Navigate("about:blank");
HtmlDocument doc = this.webBrowser1.Document;
doc.Write(string.Empty);
String htmlContent = GetHTML();
doc.Write(htmlContent);

Это корректно записывает HTML-код в элемент управления веб-браузера, НО он никогда не очищает существующие данные и просто добавляет его, поэтому я получаю N веб-страниц, уложенных друг на друга.

Это лучший элемент управления для использования? Если да, то почему он не очищает существующие данные?

Ответы [ 3 ]

3 голосов
/ 09 июня 2011

Вам необходимо использовать:

HtmlDocument doc = this.webBrowser1.Document.OpenNew(true);

Теперь содержимое документа будет очищено перед записью.

Всем вызовам для записи должен предшествовать вызов для OpenNew, который очистит текущий документ и все его переменные.Ваши звонки на Write создадут новый HTML-документ на его месте.Чтобы изменить только определенную часть документа, получите соответствующий HtmlElement и установите его свойство InnerHtml.

0 голосов
/ 09 июня 2011

Вызов HtmlDocument.OpenNew между страницами:

OpenNew очистит предыдущий загруженный документ, включая любое связанное состояние, например переменные.Это не приведет к возникновению событий навигации в WebBrowser.

0 голосов
/ 09 июня 2011

Да, это так.

Вы должны иметь возможность вызывать метод Очистить, если вам нужно очистить содержимое.

Проверьте эту статью для более подробной информации и примера кода:
http://www.codeproject.com/KB/miscctrl/simplebrowserformfc.aspx

...