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