1

我有一个被调用两次的函数,我不知道该怎么做。

这是当我按下 WebBrowser 上的输入按钮时调用的代码:

Private Sub WebBrowser_DocumentCompleted(ByVal sender As System.Object, ByVal e As WebBrowserDocumentCompletedEventArgs) _
Handles WebBrowser1.DocumentCompleted

    Document = sender.Document
    AddHandler Document.Click, New HtmlElementEventHandler(AddressOf Document_Click)

End Sub

Private Sub Document_Click(sender As Object, e As HtmlElementEventArgs)

    Select Case Document.ActiveElement.Id.ToLower
        Case "global" : prueba()
        Case Else
    End Select

End Sub

如果你想看到prueba()这里调用的函数是: http: //pastebin.com/Fi5LLX2N

我有一个视频可以播放,但注释是西班牙语:http ://www.youtube.com/watch?v=OCJXk3qJwVA


好吧,我的功能还有另一个问题,如您所见,我在底部放了这个:

Else
     MsgBox("Este ModPack ya lo tienes instalado!")
End If

但它不起作用。:(

4

3 回答 3

0

我的直接反应是一个粘滞的鼠标按钮,但实际上这很可能是由于您正在加载的网页正在加载多个页面,因此添加了重复的事件处理程序。在这行代码上放一个断点:

AddHandler Document.Click, New HtmlElementEventHandler(AddressOf Document_Click)

您可能会看到它被击中两次。确保只连接一个 HtmlElementEventHandler 以避免单击事件处理程序的双重触发。作为可能的解决方案,您可以在连接之前检查 e.Url 是否匹配。

于 2013-06-24T13:34:09.087 回答
0

尝试这个:

PS:它是即时编写的,可能会有一些语法错误。

Private Sub WebBrowser_DocumentCompleted(ByVal sender As System.Object, ByVal e As WebBrowserDocumentCompletedEventArgs) _
Handles WebBrowser1.DocumentCompleted

    Document = sender.Document
    try : removehandler Document.Click, addressof(Document_Click): catch :   end try
    AddHandler Document.Click, New HtmlElementEventHandler(AddressOf Document_Click)

End Sub
于 2013-06-24T18:56:53.517 回答
0

在 vb.net 中,不需要在 html 中为按钮定义 onclick,因为它是自动处理的。所以如果你这样做,那么 click 事件将触发两次。

于 2014-09-18T13:29:36.647 回答