Frank Dzaebel, erstellt am: 21.04.2006, zuletzt geändert: 21.04.2006
Kategorie: WebBrowser, .NET-Version: 1.1, [Download]
Der Artikel beschreibt das Einfügen von eigenem HTML (hier ein Table) in ein über die COM Registerkarte unter Visual Studio hereingezogenes WebBrowser-Control. Die Library "Microsoft.mshtml" (.NET-Registerkarte) ermöglicht dynamischen Aktionen über das Object-DOM.

object empty = Missing.Value;
private void Form1_Load(object sender, System.EventArgs e)
{
axWebBrowser1.Navigate("about:blank", ref empty, ref empty, ref empty, ref empty);
setBrowserHtml();
}
mshtml.IHTMLDocument2 doc;
private void setBrowserHtml()
{
doc = axWebBrowser1.Document as mshtml.IHTMLDocument2;
doc.clear();
string html = @"<HTML><HEAD></HEAD><BODY><table id=""tbl"" width=""100%"" bgcolor=""#ffff99"" border=""1""></table></BODY></HTML>";
doc.write(html);
mshtml.HTMLTableClass table = (mshtml.HTMLTableClass)doc.all.item("tbl", null);
string name = "<span style=\"font-size:x-large; color: #ff0000\">Gas</span>"+
"<span style=\"font-size:x-large; color: #0000ff\">ser's</span>";
string href = "<a href=\"http://Dzaebel.NET\" title=\"Franks Homepage\">Dzaebel</a>";
RowEinfügen(table, new string[]{"<b>Sam</b>", name, "kleine"});
RowEinfügen(table, new string[]{"<b>Tabelle (Zusatz-Text)</b>", "<b>Autor:</b>", href});
doc.close();
}
mshtml.HTMLTableCellClass cell;
private void RowEinfügen(mshtml.HTMLTableClass tbl, string[] inhalte)
{
mshtml.IHTMLTableRow row = (mshtml.IHTMLTableRow)tbl.insertRow(-1);
for (int i=0; i<inhalte.Length; i++)
{
cell = (mshtml.HTMLTableCellClass)row.insertCell(-1);
cell.innerHTML = inhalte[i];
}
}
private void btnDrucken_Click(object sender, System.EventArgs e)
{
doc.execCommand("Print", true, 0);
}