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!しますが、プログラムは終了しません。どちらDestroyEventDeleteEvent機能しません。誰かが理由を説明できますか?これは私の最初のアプリでc#、初めて使用しgtk#ます。IDEとしてmonodevelopを使用しています。

編集

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 に答える