C# 有没有办法动态创建和处置Webbrowser控件?

C# 有没有办法动态创建和处置Webbrowser控件?,c#,winforms,webbrowser-control,dispose,instantiation,C#,Winforms,Webbrowser Control,Dispose,Instantiation,我有一个应用程序,它使用Webbrowser控件进行自动浏览。我需要想出一种方法来自动关闭浏览器(dispose),然后创建另一个实际工作的实例 这是我到目前为止的一些代码 this.webBrowser2 = new System.Windows.Forms.WebBrowser(); this.webBrowser2.Dock = System.Windows.Forms.DockStyle.Bottom; this.webBrowser2.Location = new System.Dra

我有一个应用程序,它使用Webbrowser控件进行自动浏览。我需要想出一种方法来自动关闭浏览器(dispose),然后创建另一个实际工作的实例

这是我到目前为止的一些代码

this.webBrowser2 = new System.Windows.Forms.WebBrowser();
this.webBrowser2.Dock = System.Windows.Forms.DockStyle.Bottom;
this.webBrowser2.Location = new System.Drawing.Point(0, 34);
this.webBrowser2.MinimumSize = new System.Drawing.Size(20, 20);
this.webBrowser2.Name = "webBrowser2";
this.webBrowser2.ScriptErrorsSuppressed = true;
this.webBrowser2.Size = new System.Drawing.Size(616, 447);
this.webBrowser2.TabIndex = 1;
所以我想如果我处理掉webbrower实例

webBrowser2.dispose();
然后创建webbrowser对象的新实例

WebBrowser w = new WebBroswer();
w.Navigate(url);
不幸的是,这不起作用。浏览器的新实例不会显示,已释放的浏览器对象在windows窗体中保持冻结状态

我做错什么了吗


谢谢

您需要在表单的控件属性中添加和删除WebBrowser:

this.Controls.Remove(webBrowser2);
this.Controls.Add(w);

如果您陷入困境,还有一个几乎完整的添加和删除控件的演练(其中没有太多关于事件的内容)。

您能解释一下为什么要这样做吗?销毁第一个浏览器有什么好处?为什么不直接使用webBrowser2。一次又一次地导航?哇,好吧,这看起来是答案,谢谢。我会很快测试它