如何关闭Gtk#Window

时间:2012-08-07 07:24:34

标签: c# monodevelop gtk#

我的Gtk#应用程序中有2个全屏窗口,主要和辅助。我有第二种形式的buttonClose,click事件处理程序必须关闭此窗口并进行一些操作:

    protected void OnButtonClose_Clicked (object sender, EventArgs e)
    {
        //some operation

        this.Dispose ();                        
    }

但是窗户没有关闭!如果我在主窗口中使用此代码,该窗口将关闭,应用程序将终止。为什么此代码适用于主窗口而不适用于辅助窗口?如何关闭辅助窗口?

4 个答案:

答案 0 :(得分:5)

尝试Window.Destroy()应该破坏辅助窗口的窗口。您也可以使用.Hide()隐藏它,但不确定您的意图

答案 1 :(得分:2)

经过大量研究后,我发现了对我来说似乎正常的事情。

public WhateverWindow():base (Gtk.WindowType.TopLevel) {
DeleteEvent += delegate { Application.Quit(); };
}

尝试使用您函数中的DeleteEvent += delegate { Application.Quit(); }; ,看看是否有帮助。

答案 2 :(得分:1)

使用它:

protected void OnBtnCancelarClicked (object sender, EventArgs e)
{
   this.Destroy ();
}

答案 3 :(得分:1)

似乎唯一可行的方法是调用:

  

RootWindow.Destroy();

但是,不确定这是否正确。