2009-06-01 9 views
3

Ich habe diese App, die das Webbrowser-Steuerelement verwendet, um automatisches Browsen durchzuführen. Ich muss eine Möglichkeit finden, den Browser automatisch zu schließen (dispose) und dann eine andere Instanz zu erstellen, die tatsächlich funktioniert.Gibt es eine Möglichkeit, Webbrowser-Steuerelement dynamisch zu erstellen und zu entfernen?

Hier ist ein Teil des Codes, den ich bisher habe.

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; 

Also dachte ich, wenn ich die webbrower-Instanz entsorgen würde.

webBrowser2.dispose(); 

Und dann eine neue Instanz des Webbrowser-Objekts erstellen.

WebBrowser w = new WebBroswer(); 
w.Navigate(url); 

Leider funktioniert das nicht. Die neue Instanz des Browsers wird nicht angezeigt und das entsorgte Browserobjekt bleibt nur in der Windows-Form eingefroren.

Gibt es etwas, was ich falsch mache?

Dank

+0

Können Sie etwas mehr erklären, warum Sie das tun wollen? Welchen Vorteil hat die Zerstörung des ersten Browsers? Warum nicht einfach webBrowser2.Navigate immer wieder benutzen? –

Antwort

4

Sie müssen die WebBrowsern aus dem Controls-Eigenschaft des Formulars hinzufügen und entfernen:

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

Wenn Sie nicht weiterkommen, gibt es auch this article, die eine fast Komplettlösung zum Hinzufügen und Entfernen hat Kontrollen (es enthält nicht viel über Ereignisse).

+0

Wow, okay, das sieht nach der Antwort aus, danke. Ich werde es schnell testen – Proximo