Добрый деньКак управлять WebBrowser и управлять документом HTML?
У меня возник вопрос о отображении html-документов в приложениях форм Windows. Приложение, над которым я работаю, должно отображать информацию из базы данных
в формате html. Я попытаюсь описать действия, которые я предпринял (и которые не удалось):
1) Я попытался загрузить «виртуальную» страницу html, которая существует только в памяти и динамически изменяет ее параметры (webbMain - это элемент управления WebBrowser):
public static string CreateBookHtml()
{
StringBuilder sb = new StringBuilder();
//Declaration
sb.AppendLine(@"<?xml version=""1.0"" encoding=""utf-8""?>");
sb.AppendLine(@"<?xml-stylesheet type=""text/css"" href=""style.css""?>");
sb.AppendLine(@"<!DOCTYPE html PUBLIC ""-//W3C//DTD XHTML 1.1//EN""
""http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"">");
sb.AppendLine(@"<html xmlns=""http://www.w3.org/1999/xhtml"" xml:lang=""en"">");
//Head
sb.AppendLine(@"<head>");
sb.AppendLine(@"<title>Exemplary document</title>");
sb.AppendLine(@"<meta http-equiv=""Content-Type"" content=""application/xhtml+xml;
charset=utf-8""/ >");
sb.AppendLine(@"</head>");
//Body
sb.AppendLine(@"<body>");
sb.AppendLine(@"<p id=""paragraph"">Example.</p>");
sb.AppendLine(@"</body>");
sb.AppendLine(@"</html>");
return sb.ToString();
}
недействительный LoadBrowser() { this.webbMain.Navigate ("о: пусто"); this.webbMain.DocumentText = CreateBookHtml(); HtmlDocument doc = this.webbMain.Document; }
Это не удалось, поскольку doc.Body имеет значение null, а doc.getElementById ("paragraph") также возвращает значение null. Поэтому я не могу изменить свойство InnerText.
Кроме того, this.webbMain.DocumentText является «\ 0» ...
2) Я пытался создать HTML-файл в указанную папку, загрузить его в WebBrowser, а затем изменить его параметры. Html так же, как созданный
CreateBookHtml() метод:
private void LoadBrowser()
{
this.webbMain.Navigate("HTML\\BookPage.html"));
HtmlDocument doc = this.webbMain.Document;
}
На этот раз this.webbMain.DocumentText содержит данные Html считанных из файла, но doc.Body нуль снова возвращается, и я до сих пор не могу взять элемент, используя
Метод getByElementId(). Конечно, когда у меня есть текст, я бы попробовал регулярное выражение, чтобы получить определенные поля, или, возможно, сделать другие трюки, чтобы достичь цели, но мне интересно - есть ли просто способ maintulate html? Для меня идеальным способом было бы создать HTML-текст в памяти, загрузить его в элемент управления WebBrowser и затем динамически изменять его параметры с помощью идентификаторов. Является ли это возможным? Спасибо за ответы заранее, наилучшими пожеланиями,
Paweł
Там нет способа NavigateToString контроля WebBrowser – Rob 2017-04-09 15:49:51