我的 VBForm 中有一个 webbrowser 控件。它在我的网站上查找网站并显示它。
该 WebBrowser1 中有表单提交按钮。我希望这样当他们单击 WebBrowser1 网页中的按钮时,它将打开他们自己的浏览器以提交表单
我该怎么做呢?
(是的,这是我的网站。如果需要,我可以更改服务器上的 HTML。)
我的 VBForm 中有一个 webbrowser 控件。它在我的网站上查找网站并显示它。
该 WebBrowser1 中有表单提交按钮。我希望这样当他们单击 WebBrowser1 网页中的按钮时,它将打开他们自己的浏览器以提交表单
我该怎么做呢?
(是的,这是我的网站。如果需要,我可以更改服务器上的 HTML。)
答案要归功于:打开默认 Web 浏览器 和:vb.net WebBrowser 链接到默认 Web 浏览器
和一些试验和错误。工作结果如下:
Private Sub WebBrowser1_Navigating(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserNavigatingEventArgs) Handles WebBrowser1.Navigating
'added a match string - if Allow is inside the URL link, then the WebBrowser control is allowed to navigate to it. otherwise use their browser.
dim Allow as string = "http://mysite.com"
If InStr(e.Url.ToString(), Allow) = 0 Then
' I'm trying here to cancel the event so that the WebBrowser1 control doesn't go there.
e.Cancel = True
' then start a new process with their default browser
System.Diagnostics.Process.Start(getDefaultBrowser(), e.Url.ToString())
End If
End Sub
Private Function getDefaultBrowser() As String
Dim browser As String = String.Empty
Dim key As RegistryKey = Nothing
Try
key = Registry.ClassesRoot.OpenSubKey("HTTP\shell\open\command", False)
'trim off quotes
browser = key.GetValue(Nothing).ToString().ToLower().Replace("""", "")
If Not browser.EndsWith("exe") Then
'get rid of everything after the ".exe"
browser = browser.Substring(0, browser.LastIndexOf(".exe") + 4)
End If
Finally
If key IsNot Nothing Then
key.Close()
End If
End Try
Return browser
End Function
如果 Martin Parkin 没有发布那个重复的警告,我永远不会解决它。
另外 - 必须将我的链接更改为 METHOD = GET,帖子标题并不总是以这种方式翻译。