2009-06-02 4 views
1

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

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


Update: на Windows, она работает, если добавить [STAThread] до Main определения «s.

ответ

1

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

Смежные вопросы