我有這樣簡單的代碼在與C#
GTK#
:Application.Quit()不退出該應用程序
Main.cs
:
using System;
using Gtk;
namespace Apu{
class MainClass{
public static void Main(string[] args){
Application.Init();
new ShowForm();
Application.Run();
}
}
}
ShowForm.cs
public partial class ShowForm: Gtk.Window{
public ShowForm(): base(Gtk.WindowType.Toplevel){
MessageDialog md = new MessageDialog(
this,
DialogFlags.DestroyWithParent,
MessageType.Error,
ButtonsType.None,
"Test"
);
md.SetPosition(Gtk.WindowPosition.CenterAlways);
md.Title = "Test window";
md.AddButton("Don't stop", ResponseType.Ok);
md.AddButton("Stop", ResponseType.Cancel);
ResponseType result = (ResponseType)md.Run();
if (result.Equals(ResponseType.Cancel)) {
Console.WriteLine("Quit!");
md.DestroyEvent += delegate {
Application.Quit();
};
/*md.DeleteEvent += delegate {
Application.Quit();
};*/
}
md.Destroy();
}
}
控制檯輸出Quit!
,但該程序不會退出。 DestroyEvent
和DeleteEvent
都不起作用。誰能解釋爲什麼?這是我的第一個應用程序c#
,我第一次使用gtk#
。我使用monodevelop作爲我的IDE。
編輯
Application.Exit()
給出了錯誤:Gtk.Application does not contain a definition for 'Exit'
。
使用Application.Exit(); – Arshad
它給出了錯誤,請參閱我編輯的問題。 – maialithar
爲什麼不直接調用Application.Quit()而不是將它添加到事件md.DestroyEvent中?您不必銷燬消息對話框,因爲垃圾收集將爲您完成。 –