【问题标题】:Closing WebBrowser form opens URL in standard browser关闭 WebBrowser 表单在标准浏览器中打开 URL
【发布时间】:2016-02-09 00:13:38
【问题描述】:

经过一些操作后,我在 C# 中使用了this.Close();,它应该使用 WebBrowser 元素关闭表单。但是在关闭它后,我的标准安装浏览器(Chrome)会打开 WebBrowser 元素的最后一个 URL。我怎样才能避免这种情况? 我正在使用的代码

public Vk_connect()
    {
        string url = "https://oauth.vk.com/authorize?client_id=" + appID + "&scope=friends,photos,audio,video,docs,notes,wall,messages&redirect_uri=https://oauth.vk.com/blank.html&display=popup&response_type=token";
        this.Text = "Connect to VK";
        InitializeComponent();
        this.vkconnect.Navigate(url);
        vkconnect.Navigated += vkconnect_Navigated;
    }

    void vkconnect_Navigated(object sender, WebBrowserNavigatedEventArgs e)
    {
        token = vkconnect.Url.ToString();
        if (token.Contains("#access_token"))
        {
            token = token.Split('#')[1];
            id = token.Split('=')[3];
            token = token.Split('&')[0];
            token = token.Split('=')[1];
            config.token = token;
            config.userid = id;
            vkconnect.Stop();
            this.Close();
        }
    }

【问题讨论】:

  • 取决于你的代码做什么......
  • 我应该把整个代码贴在某个地方吗?
  • @Amator,只需通过编辑您的问题在此处发布代码,而不是在评论中添加它。
  • 够了吗(部分代码)?
  • 我遇到了完全相同的问题。我找到的唯一解决方案是在关闭表单之前添加一点延迟。这是一个非常肮脏的解决方案,但像 DocumentCompleted 这样的所有其他事件都有完全相同的问题。您找到有效的解决方案了吗?

标签: c# webbrowser-control


【解决方案1】:

我正在通过查看webBrowser1.StatusText 来检查浏览器是否已完成所有重定向。

private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e)
{
    if (webBrowser1.StatusText.Equals("Done"))
    {
        this.Close();
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多