3

我有这段简单的C#代码GTK#

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'

4

2 回答 2

5

如果您想关闭该进程,请尝试 Environment.Exit(0)

于 2012-12-28T15:26:24.650 回答
0

尝试:

md.Destroyed += delegate {
    Application.Quit();
};
于 2012-12-28T15:18:29.687 回答