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
答案 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