Eigenes HTML im WebBrowser einfügen  
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);
}