1

我是 WinForms 的新手,我正在尝试将WebBrowserGNU/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]beforeMain的定义,它就可以工作。

4

1 回答 1

1

Mono 的 WebBrowser 控件存在一些已知问题。尝试在单站点中找到 mwf-DESIGNER。

于 2009-06-03T13:43:37.283 回答