如何处理在VB.NET中的Web浏览器对象中按下的HTML按钮?

时间:2018-08-08 22:55:03

标签: vb.net visual-studio events vb.net-2010

VB.NET新秀在这里,

有什么方法可以处理在Web浏览器控件中单击的HTML对象?我设法获得的最接近的是用于浏览器的鼠标按下事件处理程序,该事件处理程序可写出鼠标的位置,但是我无法获取有关单击了哪个html对象的信息。

Private Sub myWB_mouseDown(ByVal sender As Object, ByVal e As HtmlElementEventArgs)
    If e.MouseButtonsPressed = Windows.Forms.MouseButtons.Left Then
        'mousedown event
        Debug.WriteLine(e.ClientMousePosition)
    End If
End Sub

1 个答案:

答案 0 :(得分:1)

由于具有点击的坐标,因此可以使用HtmlDocument.GetElementFromPoint()来获取点击位置的元素。

然后,您可以检查元素的TagName property以确定被单击元素的类型,即它是<button>还是<input>元素。如果是后者,则还需要检查GetAttribute("type")以确定输入元素的类型是否为submit,这意味着它是一个按钮。

If myWB.Document IsNot Nothing AndAlso e.MouseButtonsPressed = Windows.Forms.MouseButtons.Left Then
    Dim ClickedElement As HtmlElement = myWB.Document.GetElementFromPoint(e.ClientMousePosition)

    If ClickedElement IsNot Nothing AndAlso _
        (ClickedElement.TagName.Equals("button", StringComparison.OrdinalIgnoreCase) OrElse _
         (ClickedElement.TagName.Equals("input", StringComparison.OrdinalIgnoreCase) AndAlso ClickedElement.GetAttribute("type").Equals("submit", StringComparison.OrdinalIgnoreCase))) Then

        'ClickedElement was either a <button> or an <input type="submit">. Do something...

    End If
End If