JAK: Obsługiwanie zdarzeń dokumentów w aplikacji programu Visual Basic .NET

Tłumaczenia artykułów Tłumaczenia artykułów
Numer ID artykułu: 311284 - Zobacz jakich produktów dotyczą zawarte w tym artykule porady.
Ten artykuł został opublikowany wcześniej pod numerem PL311284
Rozwiń wszystko | Zwiń wszystko

Na tej stronie

Streszczenie

W tym artykule opisano sposób przechwytywania zdarzeń dokumentów w formancie WebBrowser w programie Visual Basic .NET.

Wymagania

Poniżej przedstawiono listę zalecanego sprzętu, oprogramowania, infrastruktury sieciowej i dodatków service pack:
  • Microsoft Visual Studio .NET
  • Microsoft Internet Explorer 5.5 z dodatkiem Service Pack 2 (SP2) lub nowszy
W tym artykule zakłada się, że użytkownik jest zaznajomiony z następującymi tematami:
  • Visual Studio .NET
  • Internet Explorer
  • Formant WebBrowser

Opis techniki

W programie Visual Studio .NET i wcześniejszych wersjach programu Microsoft Visual Studio formant WebBrowser obsługuje się stosunkowo łatwo. Obsługiwanie zdarzeń formantu WebBrowser w programie Visual Studio .NET może być jednak trudniejsze.

Poniższy interfejs zdarzenia udostępnia większość zdarzeń dokumentu obsługiwanych w aplikacjach:
Mshtml.HTMLDocumentEvents2_Event
Aby obsłużyć zdarzenie, należy utworzyć własną procedurę Sub lub funkcję wywoływaną po wystąpieniu zdarzenia. Sygnatura wywoływanego zdarzenia musi być zgodna. Na przykład poniższa procedura Sub obsługuje zdarzenie MouseOver dokumentu:
Private Sub document_onmouseover(ByVal e As mshtml.IHTMLEventObj)
Po umieszczeniu programu obsługi zdarzeń należy zahaczyć zdarzenie. Zdarzenie można zahaczyć w dowolnym czasie po wystąpieniu zdarzenia DocumentComplete formantu WebBrowser. Poniżej znajduje się składnia zahaczania:
AddHandler CType(document, _
mshtml.HTMLDocumentEvents2_Event).onmouseover, _
AddressOf Me.document_onmouseover
W tym kodzie wywoływana jest instrukcja AddHandler i używana funkcja CType do przekazania zdarzenia. Funkcja CType przypisuje obiektowi dokumentu odpowiedni typ (mshtml.HTMLDocumentEvents2_Event) i przekazuje zdarzenie OnMouseOver. Procedura SubMe.document_onmouseover jest przekazywana do drugiego parametru, instrukcji AddressOf, podającej adres programu obsługi.

Tworzenie projektu i dodawanie kodu

W poniższym przykładzie formant WebBrowser przechodzi do adresu http://www.microsoft.com. Po załadowaniu strony w przykładzie zahaczane są zdarzenia OnMouseOver oraz OnClick. Następnie po wystąpieniu zdarzenia dodawany jest tekst do pola listy.
  1. Uruchom program Visual Studio .NET.
  2. Utwórz nowy projekt Windows Application w programie Visual Basic .NET.
  3. Dodaj odwołanie do obiektu Microsoft.mshtml w projekcie.
  4. W przyborniku kliknij przycisk General.
  5. Prawym przyciskiem myszy kliknij otwarty panel, a następnie kliknij polecenie Customize Toolbox.
  6. Zaznacz pole wyboru Microsoft Web Browser i kliknij przycisk OK.
  7. W przyborniku kliknij dwukrotnie przycisk Explorer.
  8. W przyborniku kliknij przycisk Windows Forms, a następnie kliknij dwukrotnie formant ListBox.
  9. Rozmieść formanty, aby były łatwo widoczne na formularzu.
  10. Do projektu dodaj następujący kod:
    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

Uwagi dodatkowe

  • W przypadku automatyzacji programu Internet Explorer procedura będzie wyglądała tak samo. Zastąp zmienną AxWebBrowser1 nazwą zmiennej lokalnej dla programu Internet Explorer.
  • W tym przykładzie nie uwzględnia się zestawów ramek. Po przejściu do zestawu ramek zdarzenia w aplikacji mogą być niewidoczne. Jeśli okaże się to konieczne, należy dodać kod w celu obsługi zestawu ramek.

Materiały referencyjne

Aby uzyskać więcej informacji dotyczących formantu WebBrowser oraz innych metod, właściwości i zdarzeń udostępnianych przez formant WebBrowser, zajrzyj do następującej dokumentacji usługi MSDN:
http://msdn2.microsoft.com/en-us/library/Aa752043.aspx
Aby uzyskać więcej informacji dotyczących tworzenia rozwiązań opartych na sieci Web dla programu Internet Explorer, odwiedź następujące witryny w sieci Web:
http://msdn.microsoft.com/workshop/entry.asp

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

http://support.microsoft.com/highlights/iep.asp?FR=0&SD=MSDN

Właściwości

Numer ID artykułu: 311284 - Ostatnia weryfikacja: 13 maja 2007 - Weryfikacja: 2.2
Informacje zawarte w tym artykule dotyczą:
  • Microsoft Visual Basic .NET 2002 Standard Edition
Słowa kluczowe: 
kbhowto kbhowtomaster kbwebbrowser KB311284

Przekaż opinię

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com