1 votes

L'application se fige lors de la fermeture du contrôle WebBrowser

Je suis nouveau dans WinForms et j'essaie d'utiliser la fonction WebBrowser sur GNU/Linux avec Mono. Il fonctionne correctement, mais lorsque je ferme le formulaire, j'obtiens des avertissements étranges, et l'application se fige lorsque j'essaie de créer un autre formulaire contenant un contrôle de type WebBrowser .

En fait, je peux lancer autant de navigateurs que je le souhaite, jusqu'à ce que j'en ferme un. Ensuite, si j'en crée un nouveau, l'application se fige.

Voici un exemple de code :

 public class TestForm : Form
 {
   Button button = new Button();

   public TestForm()
   {
     button.Parent = this;
     button.Text = "Run browser";
     button.Click += button_Click;
   }

   [STAThread]
   public static void Main()
   {
     Application.Run(new TestForm());
   }

   public void button_Click(object sender, EventArgs e)
   {
     new MyBrowser("www.google.com").Show();
   }
 }

 class MyBrowser : Form
 {
   WebBrowser browser = new WebBrowser();

   public MyBrowser(string url)
   {
     browser.Parent = this;
     browser.Dock = DockStyle.Fill;
     browser.Navigate(url);
   }
 }

Voici les avertissements que je reçois :

 (essai.exe:9108): Gdk-WARNING **: GdkWindow 0x2800094 unexpectedly destroyed

 (essai.exe:9108): Gdk-WARNING **: GdkWindow 0x2800093 unexpectedly destroyed

 (essai.exe:9108): Gdk-WARNING **: GdkWindow 0x280007e unexpectedly destroyed

 (essai.exe:9108): Gdk-WARNING **: GdkWindow 0x280007d unexpectedly destroyed

 (essai.exe:9108): Gdk-WARNING **: GdkWindow 0x280001c unexpectedly destroyed

 (essai.exe:9108): Gdk-WARNING **: GdkWindow 0x280001b unexpectedly destroyed

 (essai.exe:9108): Gdk-WARNING **: GdkWindow 0x280001a unexpectedly destroyed

 (essai.exe:9108): Gdk-WARNING **: GdkWindow 0x2800016 unexpectedly destroyed

Ma question est donc la suivante : qu'est-ce que je fais de travers ? Est-il possible que le problème vienne de Mono ?


Mise à jour Sous Windows, cela fonctionne si j'ajoute [STAThread] antes de Main La définition de l

1voto

RG. Points 90

Le contrôle WebBrowser de mono a quelques problèmes connus. Essayez de trouver mwf-DESIGNER, dans le site de mono.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X