1

我想在我的 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)。我该如何解决这个问题并获得实际打开表格的数量?提前致谢

4

1 回答 1

0

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

于 2012-09-02T18:50:16.400 回答