2009-06-01 4 views
3

J'ai cette application qui utilise le contrôle Webbrowser pour faire de la navigation automatisée. Je dois trouver un moyen de fermer automatiquement le navigateur (disposer), puis créer une autre instance qui fonctionne réellement.Existe-t-il un moyen de créer et de disposer dynamiquement du contrôle Webbrowser?

Voici une partie du code que j'ai jusqu'à présent.

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; 

Donc je pensais si je disposais de l'instance webbrower.

webBrowser2.dispose(); 

Et puis en créant une nouvelle instance de l'objet WebBrowser.

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

Malheureusement, cela ne fonctionne pas. La nouvelle instance du navigateur n'apparaît pas et l'objet de navigateur éliminé reste simplement figé dans le formulaire Windows.

Y a-t-il quelque chose que je fais de mal?

Merci

+0

Pouvez-vous expliquer un peu plus pourquoi vous voulez faire cela? Quel est l'avantage de détruire le premier navigateur? Pourquoi ne pas simplement utiliser webBrowser2.Navigate encore et encore? –

Répondre

4

Vous devez ajouter et supprimer les webbrowsers de la propriété Controls du formulaire:

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

Si vous êtes coincé, il y a aussi this article qui a une presque solution complète pour l'ajout et la suppression contrôles (il n'inclut pas beaucoup sur les événements).

+0

Wow, d'accord, cela ressemble à la réponse, merci. Je vais le tester très rapidement – Proximo

Questions connexes