3

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

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

        this.Dispose ();                        
    }

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

4

4 回答 4

5

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

于 2012-08-07T11:49:59.567 回答
3

在对此进行了大量研究之后,我发现什么似乎对我来说是正确的。

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

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

于 2016-02-19T08:21:25.153 回答
0

用这个:

protected void OnBtnCancelarClicked (object sender, EventArgs e)
{
   this.Destroy ();
}
于 2014-09-08T03:18:32.937 回答
0

似乎唯一能按预期工作的方法是调用:

RootWindow.Destroy();

但是,不确定这是否是正确的方法。

于 2016-10-25T09:58:34.680 回答