Приложение зависает при закрытии элемента управления WebBrowser - PullRequest
1 голос
/ 02 июня 2009

Я новичок в 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.

1 Ответ

1 голос
/ 03 июня 2009

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

...