如何关闭Gtk#窗口
我在我的Gtk#应用程序中有2个全屏窗口,主要和次要窗口。我有buttonclose在第二种形式的单击事件处理程序必须关闭此窗口,并进行一些操作:如何关闭Gtk#窗口
protected void OnButtonClose_Clicked (object sender, EventArgs e)
{
//some operation
this.Dispose();
}
但窗口不关闭!如果我在主窗口中使用此代码,该窗口将关闭,应用程序将终止。为什么此代码适用于主窗口,不适用于辅助?我如何关闭辅助窗口?
尝试Window.Destroy()应该销毁辅助窗口的窗口。你也可以用.Hide(),但不知道这是你的意图
利用这个隐藏:
protected void OnBtnCancelarClicked (object sender, EventArgs e)
{
this.Destroy();
}
这似乎不工作:窗口关闭,但调试器不终止。我为此假定不调用包含Application.Quit()的OnDeleteEvent()处理程序。如果我覆盖OnDestroyed()并在该上下文中调用Application.Quit(),则应用程序将正确终止。这似乎有点奇怪:点击窗口上的关闭符号会导致OnDeleteEvent(),但这与OnDestroyed()完全无关,并且在某种程度上与OnDestroyedEvent()完全无关。可以s.o.帮助解释这种行为?谢谢! – 2016-06-28 14:34:22
在此我发现一吨的研究以后有什么似乎为我正常工作。
public WhateverWindow():base (Gtk.WindowType.TopLevel) {
DeleteEvent += delegate { Application.Quit(); };
}
尝试在你的函数中使用DeleteEvent += delegate { Application.Quit(); };
看看这是否没有帮助。
我不认为OP想从第二窗口退出他的应用程序... – 2016-02-19 08:39:54
似乎按预期工作的唯一方法是调用:
RootWindow.Destroy();
但是,不确定这是否是正确的方法。
非常感谢! Window.Destroy()真的帮了我 – Mixim 2012-08-08 01:47:19