3

私の Gtk# アプリケーションには、プライマリとセカンダリの 2​​ つのフルスクリーン ウィンドウがあります。クリックイベントハンドラーがこのウィンドウを閉じて何らかの操作を行う必要がある2番目のフォームにbuttonCloseがあります。

    protected void OnButtonClose_Clicked (object sender, EventArgs e)
    {
        //some operation

        this.Dispose ();                        
    }

でも窓が閉まらない!このコードをプライマリ ウィンドウで使用すると、そのウィンドウが閉じてアプリケーションが終了します。このコードがプライマリ ウィンドウでは機能し、セカンダリ ウィンドウでは機能しないのはなぜですか? セカンダリ ウィンドウを閉じるにはどうすればよいですか?

4

4 に答える 4

5

Window.Destroy() を試して、セカンダリ ウィンドウのウィンドウを破棄する必要があります。.Hide() で非表示にすることもできますが、それがあなたの意図であるかどうかはわかりません

于 2012-08-07T11:49:59.567 に答える
3

これに関する大量の調査の後、私にとって正しく機能しているように見えるものを見つけました。

public WhateverWindow():base (Gtk.WindowType.TopLevel) {
DeleteEvent += delegate { Application.Quit(); };
}

関数でを使用してみて、DeleteEvent += delegate { Application.Quit(); }; それが役に立たないかどうかを確認してください。

于 2016-02-19T08:21:25.153 に答える
0

期待どおりに機能する唯一の方法は、次の呼び出しのようです。

RootWindow.Destroy ();

ただし、それが正しい方法かどうかはわかりません。

于 2016-10-25T09:58:34.680 に答える