Приложение зависает при закрытии элемента управления WebBrowser

Я новичок в WinForms и пытаюсь использовать элемент управления WebBrowser в GNU/Linux с Mono. Он работает нормально, но когда я закрываю форму, я получаю странные предупреждения, и приложение зависает, когда я пытаюсь создать другую форму, содержащую WebBrowser.

На самом деле я могу запускать сколько угодно браузеров, пока не закрою один. Затем, если я создам новый, приложение зависнет.

Вот пример кода:

 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);
   }
 }

Вот предупреждения, которые я получаю:

 (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

Итак, мой вопрос: что я делаю неправильно? Возможно ли, что проблема исходит от Mono?


Обновление: в Windows это работает, если я добавлю [STAThread] перед определением Main.


person Bastien Léonard    schedule 02.06.2009    source источник


Ответы (1)


Элемент управления WebBrowser из моно имеет некоторые известные проблемы. Попробуйте найти mwf-DESIGNER на моносайте.

person RG.    schedule 03.06.2009