如何根据bool结果显示消息框?

时间:2012-12-04 10:39:21

标签: c# boolean

我目前在Quit方法中有以下代码:

public void QuitApplication(FormClosingEventArgs a, bool b)
{
    bool c = Properties.App.Default.AskToExit, d = Properties.App.Default.AskToSave;
    if (!b)
    {
        if (!c && !d)
        {

        }
        else if (!c)
        {
            if (YesNoMessageBox("Save Before Quit?", "Would you like to save your settings before you Quit?") == DialogResult.Yes)
            {
                _debug("Settings Saved");

                //Properties.App.Default.Save();
                //Properties.Settings.Default.Save();
            }
        }
        else if (!d)
        {
            if (YesNoMessageBox("Really Quit?", "Are you sure you want to quit?") == DialogResult.No)
            {
                a.Cancel = true;
            }
        }
        else
        {
            if (YesNoMessageBox("Really Quit?", "Are you sure you want to quit?") == DialogResult.Yes)
            {
                if (YesNoMessageBox("Save Before Quit?", "Would you like to save your settings before you Quit?") == DialogResult.Yes)
                {
                    _debug("Settings Saved");

                    //Properties.App.Default.Save();
                    //Properties.Settings.Default.Save();
                }
            }
            else
            {
                a.Cancel = true;
            }
        }
    }
}

这用于检查用户是否想要退出并在需要时保存。但是我有两个选项可以设置为在调用此方法时忽略要求保存或要求退出。比较这些我想到的唯一方法是上面的,我相信你可以做到这一点,所以重复次数要少得多。 (由于应用程序仍处于开发状态且设置文件尚未完成,因此保存方法已被注释掉。)

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

我不知道您的参数b的作用,请处理您的变量命名。看起来如果这是真的,它应该跳过所有问题并且无论如何都要退出。然后可以将其命名为forceQuit

这应该做:

public void QuitApplication(FormClosingEventArgs closeArgs, bool forceQuit)
{
    if (forceQuit)
    {
        return;
    }

    if (Properties.App.Default.AskToExit)
    {
        if (YesNoMessageBox("Really Quit?", "Are you sure you want to quit?") != DialogResult.Yes)
        {
            // Cancel exit
            closeArgs.Cancel = true;
            return;
        }
    }

    if (Properties.App.Default.AskToSave)
    {
        if (YesNoMessageBox("Save Before Quit?", "Would you like to save your settings before you Quit?") == DialogResult.Yes)
        {
            // Save
        }
    }
}

我会说第二个消息框应该是一个Yes|No|Cancel,其中取消取消退出,或者甚至更好,根本不使用消息框。