DetailPage-MSS-KB

Knowledge Base

Artikel-ID: 311284 - Geändert am: Sonntag, 13. Mai 2007 - Version: 1.3

Dieser Artikel wurde zuvor veröffentlicht unter D311284
Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
311284  (http://support.microsoft.com/kb/311284/en-us/ ) HOW TO: Handle Document Events in a Visual Basic .NET Application
In Artikel 312777  (http://support.microsoft.com/kb/312777/DE/ ) 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:
http://support.microsoft.com/ (http://support.microsoft.com/)
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.

Auf dieser Seite

Zusammenfassung

In diesem Artikel wird beschrieben, wie Sie Dokumentereignisse für das Webbrowser-Steuerelement in Visual Basic .NET auffangen können.

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

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.

Erstellen des Projekts und Hinzufügen des Codes

In folgendem Beispiel lädt der WebBrowser die Website http://www.microsoft.com (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 Sub
    
    Private 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_onmouseover
    End Sub
    Private 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_onmouseover
    End Sub
    Private Sub Document_onmouseover(ByVal e As mshtml.IHTMLEventObj)
        ListBox1.Items.Insert(0, "onMouseOver: " & _
            e.srcElement.tagName.ToString())
    End Sub
    Private Function Document_onclick(ByVal e As mshtml.IHTMLEventObj) _
            As Boolean
        ListBox1.Items.Insert(0, "onClick: " & _
            e.srcElement.tagName.ToString())
        Return True
    End Function

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.

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 (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:
http://msdn.microsoft.com/workshop/entry.asp (http://msdn.microsoft.com/workshop/entry.asp)

http://msdn.microsoft.com/ie/ (http://msdn.microsoft.com/ie/)

http://support.microsoft.com/highlights/iep.asp?FR=0&SD=MSDN (http://support.microsoft.com/?scid=http%3a%2f%2fsupport.microsoft.com%2fhighlights%2fiep.asp%3ffr%3d0%26amp%3bsd%3dmsdn)

Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Visual Basic .NET 2003 Standard Edition
Keywords: 
kbhowtomaster kbwebbrowser KB311284
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.
Freigeben
Weitere Supportoptionen
Microsoft Community-Supportforen
Kontaktieren Sie uns direkt
Zertifizierten Partner finden
Microsoft Store