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

被调用的处理程序方法有一个表示事件 args 的参数(类型为CancelEventArgs,我们称之为它ee.Cancel = true在处理程序内部设置以防止默认行为。

于 2012-06-12T17:20:53.620 回答