0

この記事について「HtmlElementEventHandler Delegate」http://msdn.microsoft.com/en-us/library/system.windows.forms.htmlelementeventhandler.aspx

コンテキスト メニューのイベント ハンドラが複数回発生します。重複したイベントがトリガーされないようにするにはどうすればよいですか?

これが私のコードです:

パブリック イベント DocumentCompleted As WebBrowserDocumentCompletedEventHandler

Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) Handles    WebBrowser1.DocumentCompleted
    Dim Doc As HtmlDocument = Me.WebBrowser1.Document
    AddHandler Doc.ContextMenuShowing, New HtmlElementEventHandler(AddressOf Document_ContextMenuShowing)
    Dim htmldoc As HtmlDocument = Me.WebBrowser1.Document
End Sub

Private Sub Document_ContextMenuShowing(ByVal sender As Object, ByVal e As HtmlElementEventArgs)
    Try
        Dim doc As HtmlDocument = CType(sender, HtmlDocument)
        If doc.ActiveElement.TagName = "A" Then
            MsgBox(doc.ActiveElement.InnerHtml)
            e.ReturnValue = False
        End If
    Catch ex As Exception
    End Try
End Sub
4

1 に答える 1

1

DocumentCompleted は、Web ページのフレームごとに発生します。WebBrowser1_DocumentCompleted Sub で AddHandler を 1 回だけ使用して、1 回だけ起動させます。

于 2013-02-26T03:27:07.407 に答える