2

VBFormにWebブラウザコントロールがあります。私のサイトでウェブサイトを探して表示します。

そのWebBrowser1にはフォーム送信ボタンがあります。WebBrowser1 Webページのボタンをクリックすると、独自のブラウザが開いてフォームを送信できるようにしたいと思います。

どうすればこれを行うことができますか?

(はい、それは私のWebサイトです。必要に応じてサーバー上のHTMLを変更できます。)

4

1 に答える 1

1

答えは次のおかげです:デフォルトのWebブラウザを開く と:vb.netWebBrowserはデフォルトの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

マーティンパーキンがその重複した警告を投稿しなかった場合、私はそれを解決することは決してありませんでした。

また、リンクをMETHOD = GETに変更する必要がありましたが、投稿ヘッダーが常にこのように変換されるとは限りません。

于 2013-03-27T10:26:49.070 に答える