2

ユーザーがメイン ウィンドウで「X」を押すと、次のダイアログが表示されます。

 -- Save Changes --------------------------
|                                          |
|  Do you want to save changes?            |
|                                          |
|                                          |
|    |Don't Save|      |Cance|   |Save|    |
|__________________________________________|

[キャンセル] ボタンの実装に問題があります。ユーザーが [キャンセル] を押した後、メイン ウィンドウを閉じないようにする方法がわかりません。ウィンドウの「閉じる」コマンド/メソッドを使用して、このダイアログでユーザーにプロンプ​​トを表示しています。

4

2 に答える 2

10

Cancelクロージング イベントでは、イベント プロパティを trueに設定する必要があります。

    void DataWindow_Closing(object sender, CancelEventArgs e)
    {
        MessageBox.Show("Closing called");

        // If data is dirty, notify user and ask for a response
        if (this.isDataDirty)
        {
            string msg = "Data is dirty. Close without saving?";
            MessageBoxResult result = 
              MessageBox.Show(
                msg, 
                "Data App", 
                MessageBoxButton.YesNo, 
                MessageBoxImage.Warning);
            if (result == MessageBoxResult.No)
            {
                // If user doesn't want to close, cancel closure
                e.Cancel = true;
            }
        }
    }
于 2012-06-12T17:21:43.997 に答える
5

呼び出されるハンドラーメソッドには、イベント引数を表すパラメーターがあります (タイプCancelEventArgsの、それを呼び出しましょう。デフォルトの動作を防ぐためにハンドラー内にe設定します。e.Cancel = true

于 2012-06-12T17:20:53.620 に答える