在VB.NET中调用一次函数

时间:2013-06-24 12:48:26

标签: vb.net function scroll

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

当我按下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

但它不起作用。 :(

3 个答案:

答案 0 :(得分:0)

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

AddHandler Document.Click, New HtmlElementEventHandler(AddressOf Document_Click)

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

答案 1 :(得分: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

答案 2 :(得分:0)

在vb.net中,没有必要在html for button中定义onclick,因为它是自动处理的。如果你这样做,那么click事件将会触发twise。