Sie sind zurzeit offline. Es wird auf die erneute Herstellung einer Internetverbindung gewartet.

SO WIRD'S GEMACHT: Behandlung von Dokumentereignissen in einer Visual Basic .NET-Anwendung

Dieser Artikel wurde zuvor veröffentlicht unter D311284
Dieser Artikel wurde archiviert. Er wird im vorliegenden Zustand bereitgestellt und nicht mehr aktualisiert.
Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
311284 HOW TO: Handle Document Events in a Visual Basic .NET Application
In Artikel 312777 wird dieses Thema für Microsoft Visual C# .NET behandelt.
Hinweis: Die Verwendung der hier aufgeführten Informationen sowie Makro- oder Programmcodes geschieht auf Ihre eigene Verantwortung. Microsoft stellt Ihnen diese Informationen sowie Makro- und Programmlistings ohne Gewähr auf Richtigkeit, Vollständigkeit und/oder Funktionalität sowie ohne Anspruch auf Support zur Verfügung. Die zur Verfügung gestellten Makro- und Programmierungsbeispiele sollen lediglich exemplarisch die Funktionsweise des Beispiels aufzeigen.

Weitere Informationen zu den von Microsoft angebotenen Supportoptionen finden Sie unter folgender Internetadresse:
Zusammenfassung
In diesem Artikel wird beschrieben, wie Sie Dokumentereignisse für das Webbrowser-Steuerelement in Visual Basic .NET auffangen können.

Zurück zum Anfang

Voraussetzungen

In der folgenden Liste sind die empfohlene Hardware, Software, Netzwerkinfrastruktur und die erforderlichen Service Packs aufgeführt:
  • Microsoft Visual Studio .NET
  • Microsoft Internet Explorer 5.5 Service Pack 2 (SP2) oder höhere Version
Dieser Artikel setzt voraus, dass Sie mit folgenden Themen vertraut sind:
  • Visual Studio .NET
  • Internet Explorer
  • WebBrowser-Steuerelement
Zurück zum Anfang

Beschreibung der Technik

Das Arbeiten mit dem Steuerelement WebBrowser ist in Visual Studio .NET oder früheren Versionen des Microsoft Visual Studio recht einfach. Die Behandlung von Ereignissen eines WebBrowser-Steuerelements in Visual Studio .NET kann sich dagegen schon schwieriger gestalten.

Die folgende Ereignisschnittstelle umfasst die meisten Ereignisse von Document, die in Ihrer Anwendung zu behandeln sind:
Mshtml.HTMLDocumentEvents2_Event
Um das Ereignis zu behandeln, müssen Sie Ihre eigene Sub-Prozedur bzw. -funktion erstellen, die bei Eintreten des Ereignisses aufgerufen werden kann. Sie müssen die Signatur des auslösenden Ereignisses anpassen. Folgende Sub-Prozedur behandelt beispielsweise das MouseOver-Ereignis des Dokuments:
Private Sub document_onmouseover(ByVal e As mshtml.IHTMLEventObj)
Nachdem der Ereignishandler an richtiger Stelle eingefügt wurde, müssen Sie das Ereignis auffangen. Ein Ereignis kann jederzeit aufgefangen werden, nachdem das Ereignis DocumentComplete im WebBrowser-Steuerelement ausgelöst wurde. Verwenden Sie zum Auffangen des Ereignisses folgende Syntax:
AddHandler CType(document, _mshtml.HTMLDocumentEvents2_Event).onmouseover, _AddressOf Me.document_onmouseover
Dieser Code ruft die Anweisung AddHandler auf und verwendet die Funktion CType, um das Ereignis zu übergeben. Die Funktion CType wandelt den Typ des Objekts Document in den entsprechenden Typ um (mshtml.HTMLDocumentEvents2_Event), und anschließend wird daraus das OnMouseOver-Ereignis übergeben. Die Sub-Prozedur Me.document_onmouseover wird an den zweiten Parameter übergeben, sprich an die Anweisung AddressOf, welche die Adresse des Handlers zurückliefert.

Zurück zum Anfang

Erstellen des Projekts und Hinzufügen des Codes

In folgendem Beispiel lädt der WebBrowser die Website http://www.microsoft.com. Nachdem die Seite geladen ist, werden die Ereignisse OnMouseOver und OnClick eingehängt. Im Beispiel wird dann beim Auslösen der Ereignisse Text in einem Listenfeld hinzugefügt.
  1. Starten Sie Visual Studio .NET.
  2. Erstellen Sie ein neues Windows-Anwendungsprojekt in Visual Basic .NET.
  3. Fügen Sie im Projekt einen Verweis auf Microsoft.mshtml hinzu.
  4. Klicken Sie in der Toolbox auf Allgemein.
  5. Klicken Sie mit der rechten Maustaste auf Öffnen, und klicken Sie danach auf Toolbox anpassen (Customize Toolbox).
  6. Markieren Sie das Kontrollkästchen Microsoft Webbrowser, und klicken Sie anschließend auf OK.
  7. Doppelklicken Sie in der Toolbox auf Explorer.
  8. Klicken Sie in der Toolbox auf WinForms, und doppelklicken Sie anschließend auf das Steuerelement Listenfeld.
  9. Ordnen Sie die Steuerelemente so auf dem Formular an, dass sie gut sichtbar sind.
  10. Fügen Sie folgenden Code zum Projekt hinzu:
    Private Sub Form1_Load(ByVal sender As System.Object, _        ByVal e As System.EventArgs) Handles MyBase.Load    AxWebBrowser1.Navigate2("http://www.microsoft.com")End SubPrivate Sub AxWebBrowser1_DocumentComplete(ByVal sender As Object,_        ByVal e As _        AxSHDocVw.DWebBrowserEvents2_DocumentCompleteEvent) _        Handles AxWebBrowser1.DocumentComplete    Dim doc As mshtml.HTMLDocument    doc = AxWebBrowser1.Document    AddHandler CType(doc, _        mshtml.HTMLDocumentEvents2_Event).onclick, _         AddressOf Document_onclick    AddHandler CType(doc, _	mshtml.HTMLDocumentEvents2_Event).onmouseover, _        AddressOf Document_onmouseoverEnd SubPrivate Sub AxWebBrowser1_BeforeNavigate2(ByVal sender As Object, _        ByVal e As _        AxSHDocVw.DWebBrowserEvents2_BeforeNavigate2Event) _        Handles AxWebBrowser1.BeforeNavigate2    Dim doc As mshtml.HTMLDocument    doc = AxWebBrowser1.Document    RemoveHandler CType(doc, _        mshtml.HTMLDocumentEvents2_Event).onclick, _        AddressOf Document_onclick    RemoveHandler CType(doc, _        mshtml.HTMLDocumentEvents2_Event).onmouseover, _        AddressOf Document_onmouseoverEnd SubPrivate Sub Document_onmouseover(ByVal e As mshtml.IHTMLEventObj)    ListBox1.Items.Insert(0, "onMouseOver: " & _        e.srcElement.tagName.ToString())End SubPrivate Function Document_onclick(ByVal e As mshtml.IHTMLEventObj) _        As Boolean    ListBox1.Items.Insert(0, "onClick: " & _        e.srcElement.tagName.ToString())    Return TrueEnd Function
Zurück zum Anfang

Zusätzliche Hinweise

  • Mit derselben Vorgehensweise können Sie auch den Internet Explorer automatisieren. Ersetzen Sie AxWebBrowser1 mit dem lokalen Variablennamen für Ihren Internet Explorer.
  • Dieses Beispiel berücksichtigt keine Framesets. Wenn Sie zu einem Frameset navigieren, sehen Sie in Ihrer Anwendung möglicherweise keine Ereignisse. Sollte dies in Ihrer Anwendung erforderlich sein, müssen Sie Code für die Behandlung von Framesets hinzufügen.
Zurück zum Anfang
Informationsquellen
Weitere Informationen zum WebBrowser-Steuerelement, seinen Methoden, Eigenschaften und Ereignissen finden Sie in folgender MSDN-Dokumentation:
Reference for Visual Basic Developers
http://msdn2.microsoft.com/en-us/library/Aa752043.aspx
Weitere Informationen zur Entwicklung von webbasierten Lösungen für den Internet Explorer finden Sie auf folgenden Websites:
Zurück zum Anfang
web browser
Bitte beachten Sie: Bei diesem Artikel handelt es sich um eine Übersetzung aus dem Englischen. Es ist möglich, dass nachträgliche Änderungen bzw. Ergänzungen im englischen Originalartikel in dieser Übersetzung nicht berücksichtigt sind. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Produktversion(en). Die Richtigkeit dieser Informationen in Zusammenhang mit anderssprachigen Produktversionen wurde im Rahmen dieser Übersetzung nicht getestet. Microsoft stellt diese Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder Richtigkeit der Übersetzung.
Eigenschaften

Artikelnummer: 311284 – Letzte Überarbeitung: 12/07/2015 08:05:16 – Revision: 1.3

Microsoft Visual Basic .NET 2002 Standard Edition, Microsoft Visual Basic .NET 2003 Standard Edition

  • kbnosurvey kbarchive kbhowtomaster kbwebbrowser KB311284
Feedback