C# 关闭WebBrowser表单将在标准浏览器中打开URL
在一些操作之后,我使用C# 关闭WebBrowser表单将在标准浏览器中打开URL,c#,webbrowser-control,C#,Webbrowser Control,在一些操作之后,我使用this.Close()应使用WebBrowser元素关闭窗体。但在关闭它之后,我的标准安装浏览器(Chrome)将打开WebBrowser元素的最后一个URL。我怎样才能避免这种情况? 我正在使用的代码 public Vk_connect() { string url = "https://oauth.vk.com/authorize?client_id=" + appID + "&scope=friends,photos,audio,vi
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();
}
}
我通过查看webBrowser1.StatusText
检查浏览器是否已完成所有重定向
private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e)
{
if (webBrowser1.StatusText.Equals("Done"))
{
this.Close();
}
}
取决于你的代码是什么。我应该把整个代码发布到某个地方吗?@Amator,只需在这里发布代码,编辑你的问题,而不是在评论中添加。这足够了(代码的一部分)吗?我也有同样的问题。我找到的唯一解决办法是在关闭表单之前增加一点延迟。这是一个非常肮脏的解决方案,但是像DocumentCompleted这样的所有其他事件都有完全相同的问题。你找到有效的解决方案了吗?