【发布时间】:2014-04-22 12:33:23
【问题描述】:
Visual Studio 2010,Visual Basic .NET
再次编辑 我已经确定我正在尝试做的事情是做不到的。
我有一个表单frmContent 和一个WebBrowser 控件wbContent。
如果您单击 wbContent 中的图像链接,它会打开一个新表单 (frmImages) 并将图像加载到 WebBrowser wbImages。我为此使用了 WebBrowser 控件,因为我使用同一个窗口来打开用 html 编写的表格。
无论如何,当用户单击wbContent 中的表格链接时,它会打开frmImages 并将表格的html 页面加载到wbImages 中。
我在wbImages 中添加了一个鼠标按下事件侦听器,就像在wbContent 中一样。当用户单击 wbImages 内的表中的链接时,假设会在其父窗体 frmContent 中打开该链接。
我尝试wbImages.Stop() 阻止wbImages 导航,但这不起作用。
我尝试将焦点设置为 frmContent,然后将 URL 加载到父 WebBrowser wbContent 中,但这不起作用。然后,我唯一能做的就是在将 URL 发送到父窗口之前添加一个 MessageBox。
下面的代码有效,但如果我删除 MessageBox,它会在 wbImages 中加载 URL。
Public Sub wpMouseDown(ByVal sender As Object, ByVal e As HtmlElementEventArgs)
If e.MouseButtonsPressed = Windows.Forms.MouseButtons.Left Then
Dim bookmarkElement = wbImages.Document.GetElementFromPoint(e.ClientMousePosition)
If bookmarkElement.GetAttribute("href").ToString() <> "" Then
testUrl = bookmarkElement.GetAttribute("href").ToString()
MessageBox.Show(testUrl)
frmContent.Focus()
frmContent.wbContent.Navigate(New Uri(testUrl))
End If
End If
End Sub
编辑
如果我删除 frmContent.wbContent.Navigate(New Uri(testUrl)),wbImages 仍然可以导航。我一定是错误地实现了 ReturnValue,或者我的事件处理程序错误并且 .Stop() 也不起作用。在我对此处的建议进行任何更改之前,这是整个事件处理程序代码。
Private Sub frmImages_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
AddHandler wbImages.Document.MouseDown, AddressOf wpMouseDownEvent
End Sub
Private Sub wpMouseDownEvent(ByVal sender As Object, ByVal e As System.Windows.Forms.HtmlElementEventArgs)
Dim event_html As New HtmlElementEventHandler(AddressOf wpMouseDown)
event_html.Invoke(sender, e)
End Sub
Public Sub wpMouseDown(ByVal sender As Object, ByVal e As HtmlElementEventArgs)
If e.MouseButtonsPressed = Windows.Forms.MouseButtons.Left Then
Dim bookmarkElement = wbImages.Document.GetElementFromPoint(e.ClientMousePosition)
If bookmarkElement.GetAttribute("href").ToString() <> "" Then
testUrl = bookmarkElement.GetAttribute("href").ToString()
'Need testUrl to be passed to the Navigation for wbContent
End If
End If
End Sub
【问题讨论】:
标签: .net vb.net visual-studio-2010 webbrowser-control