C# 关闭所有窗体后退出应用程序

C# 关闭所有窗体后退出应用程序,c#,monodevelop,gtk#,C#,Monodevelop,Gtk#,我想在我的Gtk申请表中有很多表格。我想在用户关闭所有表单时退出应用程序。我尝试使用下一个代码: protected void OnDeleteEvent (object sender, DeleteEventArgs a) { /*Application.Quit (); a.RetVal = true;*/ if(System.Windows.Forms.Application.OpenForms.Count==0) { Gtk.A

我想在我的Gtk申请表中有很多表格。我想在用户关闭所有表单时退出应用程序。我尝试使用下一个代码:

    protected void OnDeleteEvent (object sender, DeleteEventArgs a)
{
    /*Application.Quit ();
    a.RetVal = true;*/


    if(System.Windows.Forms.Application.OpenForms.Count==0)
    {
        Gtk.Application.Quit ();
        a.RetVal = true;
    }
}
但是System.Windows.Forms.Application.OpenForms.Count始终返回“0”,而不管打开的表单数是多少(OS Ubuntu 12.04)。如何解决此问题并获得打开表单的实际数量?
提前感谢

也试图找到这个问题的答案。
我当前的实现基于我在MS Visual Studio文档中看到的一些概念:
在项目的主类中,维护打开窗口的静态列表。
不要使用GTK#窗口的delete事件,而是destroy事件(使用OnDelete事件处理程序,如果我没有记错的话,windows delete无法由成员函数直接调用,则某些事情不起作用)。
在OnDestoy事件处理程序中:当窗口被破坏时,将其从静态列表中删除。然后检查列表是否为空,然后退出应用程序。
不确定这是否真的适用于GTK#windows,但在我的应用程序中,这一概念很有效。
问候

Harald

只是一个猜测,因为从来没有编写过GTK应用程序,但是如果您正在打开GTK windows,您不应该查询GTK的窗口计数,而不是System.windows.Forms?我只是猜测,但是您是否关闭了主窗体?Will,非常感谢您的回复。也许你是对的,但是我得到了一个打开的Gtk窗口的列表?Matthias Koch,是的,我关上主窗和副窗