bitroom - CSharp C# - Tips und Tricks rund um C#

Snippets
Code Snippets
Open Object Database
Open Object Catalog Was ist die Open Object Database? Open Object Namenskonvention
Objekt Suche
 

Technik
C# / .NET SOA Pentaho JBoss AJAX PHP Klassen Java Tutorials MySQL - Replikation MySQL 5 - Datenbank Internet Provider Suchmaschinen Optimierung
Bereiche
News Projekte Links
Kommunikation
Weblog / Blog
Glossar
LAMP PHP XAMPP
Fragen, Kritik oder Kommentare? Dann schreib einfach eine Email an alex[at]bitroom.de

C# Programmier Beispiele - C# WebbrowserControl und MSHTML


Was ist das Webbrowsercontrol

Das Webbrowsercontrol ist ein C# Objekt, welches die Einbettung eines Wewbbrowsers in die eigene Applikation erlaubt. Das Webbrowsercontrol stellt bereits viele Methoden zur Verfügung um durch Webseiten zu Navigieren. Ebenso ist es möglich auf die Seiteninhalte zuzugreifen und diese zu verändern.

C# MSHTML

MSHTML genauer die Microsoft.mshtml.dll ist ein knapp 8 MB grosser Monolit, der im wesentlichen die Funktionalitäten des Internetexplorers wiederspiegelt. Einmal in C# eingebunden und geladen bietet MSHTML nahezu unbegrenzte Möglichkeiten an, was die Modifizierung und Gestaltung als auch die entwicklung eigener Broswser betrifft.

Prerequirements

Um die hier beschriebenen Objekte nutzen zu können benötigt ihr das .NET Framework 2.0 SDK. Dort ist auch die Microsoft.mshtml.dll enthalten. Ich selbst erstelle die Projekte mit Visual Studio. Mit der Express Version oder anderen C# IDEs wie SharpDevelop geht das ganze aber genauso gut.
Zunächst benötigt ihr eine neue Referenz. Bei den .NET Referenzen gibt es die Microsoft.mshtml referenz. Diese fügt ihr eurem Projekt hinzu und ergänzt eure Klasse um die Directive "using mshtml;". Euer Formular ergänzt ihr am besten um einen MenuStrip und um einen ToolStrip. Hier könnt ihr später eure Icons und Menüs unterbringen.
Nun fügt ihr das WebbrowserControl dem Formular hinzu und setzt das Docking am besten auf "Fill". Den Namen des Controls ändert ihr am besten auf wb. Im Konstruktor des Formulares setzt ihr dann den Inhalt des WebbrowserControl auf einen leeren String.

Code Snippets zu C# MSHTML

Webbrowsercontrol Seite laden oder Inhalt festlegen
wb.Navigate("http://www.bitroom.de");

Document in den Designmode wechseln
Als globale Variable fügen wir ein HTMLDocument Objekt hinzu.
HTMLDocument hdoc;
Nach Initialize Components sorgen wir dafür, dass wir benachrichtigt werden, sobald das Dokument geladen wurde.
this.wb.DocumentCompleted += 
           new System.Windows.Forms.WebBrowserDocumentCompletedEventHandler(
           this.WbDocumentCompleted);
Unsere WbDocumentComplete Funktion sieht wie folgt aus:
void WbDocumentCompleted(object sender, 
                         WebBrowserDocumentCompletedEventArgs e)
{
   this.hdoc=(HTMLDocument)wb.Document.DomDocument;
   this.hdoc.designMode="On";
}
this.hdoc.designMode="On"; sorgt dafür, dass das geladene Dokument nun in den Designmode gesetzt wird. Damit können wir in der Webseite frei herumwerkeln.

HTMLDocument.execCommand - Bold, Italic, Underline u.a. Buttons
Im Toolstrip legt ihr nun 3 Buttons an. Danach belegt ihr für die drei Buttons das onclick Event wie folgt:
this.hdoc.execCommand("Bold",false,null);
this.hdoc.execCommand("Underline",false,null);
this.hdoc.execCommand("Italic",false,null);
Und siehe da. Bei Betätigung des Buttons wird der markierte Text automatisch Dick oder unterstrichen oder in Italic gewechselt.
Neben den drei gezeigten Befehlen gibt es noch jede menge andere Befehle, deren Namen ihr im MSDN nachschauen könnt.
Bei dem Befehl ist der erste Parameter der Befehl. Achtung diese sind vorgegeben!
Der zweite Parameter sagt aus, ob für den Parameter ein GUI angezeigt werden soll. Das geht nur bei Befehlen für die auch ein GUI existiert.
Der dritte Parameter ist ein der Wert, der bei manchen Commandos benötigt wird.
Hierzu noch ein paar Beispiele:
this.hdoc.execCommand("InsertImage",true,null);
this.hdoc.execCommand("Fontname",false,"Arial");
this.hdoc.execCommand("SaveAs",true,null);
Auf MSDN findet Ihre noch viel mehr Commands. Alleine mit diesen Commands kann man sehr viel realisieren. Google suche "msdn mshtml execCommand Command Identifiers" bringt euch in den ersten Treffern direkt zur Seite wo ihr die anderen Commands findet.


New Objects in Database
TEMP_1NEU!
Shortdesc
Datum: 2009-08-16 14:08:51
Show Object

testobjectNEU!
object for testing
Datum: 2009-01-14 21:01:05
Show Object

Code Samples
CSharp C# Datenbank C# DataSet C# HTML Editor C# Tips & Tricks
LAMP/LAMPS Links
XAMPP Apache Webserver PHP Download MySQL Datenbank OpenSSL ModSSL LAMPS Tutorial
IT - News
Golem Heise Verlag
Fun Stuff
Autsch Lustige Stories Hackfressen
(c)2005 bitroom