Gtk# では、「destroy」イベントのハンドラーを接続できますが、呼び出されることはありません。このアプリケーションは何も出力しません。Gtk のドキュメントによると、「destroy」イベントは特定のフラグが設定されている場合にのみ送信され、このフラグは Gdk によって自動的に設定されるとも書かれています。
これは、正しく動作するプレーンな Gtk+ コードと基本的に同じであるため、イライラします。Application.Quit()
また、「destroy」イベントを聞く以外に、いつ呼び出すかをどのように知ることができますか?
using System;
using Gtk;
public class MainWindow {
public static void Main(string[] args)
{
Application.Init();
Window win = new Window("Test");
win.Resize(200, 200);
win.DestroyEvent += new DestroyEventHandler(OnDestroy);
win.ShowAll();
Application.Run();
}
private static void OnDestroy(object o, DestroyEventArgs args)
{
Console.WriteLine("OnDestroy");
}
}
PS「削除」イベントには興味がありません。