如何处理VB.NET中web浏览器对象中按下的HTML按钮?
这里是VB.NET新手 有没有办法处理在web浏览器控件内单击的HTML对象?我所能得到的最接近的是浏览器的鼠标按下事件处理程序,它记录了鼠标的位置,但我无法获得关于单击了什么html对象的信息如何处理VB.NET中web浏览器对象中按下的HTML按钮?,vb.net,visual-studio,events,vb.net-2010,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
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
因为您有单击的坐标,所以可以使用它来获取单击点处的元素 然后,您可以检查元素的属性以确定单击的元素的类型,即它是
还是
元素。如果是后者,您还需要检查以确定输入元素的类型是否为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
如果myWB.Document不是空的,并且e.MouseButtonsPressed=Windows.Forms.MouseButtons.Left,则
Dim ClickedElement作为HtmlElement=myWB.Document.GetElementFromPoint(e.ClientMousePosition)显示
如果ClickedElement不是Nothing,也不是Nothing_
(单击eElement.TagName.Equals(“按钮”,StringComparison.OrdinalIgnoreCase)或LSE_
(单击eElement.TagName.Equals(“输入”,StringComparison.OrdinalIgnoreCase),然后单击eElement.GetAttribute(“类型”).Equals(“提交”,StringComparison.OrdinalIgnoreCase)))然后
'ClickedElement是或。做点什么。。。
如果结束
如果结束
解析对象的事件。是一个HtmlElement
(不过这可能很棘手)。当你发现下一个(显然)奇怪的行为时,请更新问题。如果我的答案解决了你的问题,请不要忘记按我帖子左侧的勾号/复选标记将其标记为已接受。有关更多信息,请参阅:谢谢!如果您对此或我的实施有任何进一步的问题或疑问,请在我的回答中发表评论让我知道!