Jesteś obecnie w trybie offline. Czekamy na ponowne połączenie z Internetem.

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

Ten artykuł został opublikowany wcześniej pod numerem PL311284
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 adresuhttp://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 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

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: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:
web przeglądarka
Właściwości

Identyfikator artykułu: 311284 — ostatni przegląd: 05/13/2007 01:17:14 — zmiana: 2.2

  • Microsoft Visual Basic .NET 2002 Standard Edition
  • kbhowto kbhowtomaster kbwebbrowser KB311284
Opinia