MessageBoxButtons中“否”和“取消”之间的区别

时间:2011-08-24 13:36:39

标签: c# messagebox

当用户去删除项目并最初使用MessageBoxButtons.YesNoCancel时,我使用MessageBox显示确认消息。后来我改为YesNo,因为用户指出在这种情况下“No”和“Cancel”没有真正的区别。我的问题是......有什么区别?是否有理由使用YesNoCancel而不是YesNo?

6 个答案:

答案 0 :(得分:7)

在你的情况下没有区别,因为你的问题只产生一个动作然后结束。

在标准用法中,“是否取消”通常会提出问题,“是”或“否”将选择其他操作,然后继续执行其他操作(如退出表单),“取消”将放弃所有操作。

例如:退出Word,你想保存吗? “是的,不,取消”。是和否将在保存或不保存的情况下继续退出,取消将不保存或退出。

无论你做什么,确保取消做了用户最期望的事情 - 当我必须专注于其他事情时,如果用消息框轰炸我会永远取消垃圾邮件。如果我取消了某些东西,我不想失去很多工作,因为我没有时间停下来正确处理它。

用户滥用取消: - )

答案 1 :(得分:3)

当然可以。例如,如果存在保存对话框并输入已存在的文件名,则对话框可能会询问您是否要覆盖该文件。

是的意思是覆盖文件。否可能意味着在文件名末尾添加“(1)”,或者提示输入其他文件名。取消可能意味着不要随便保存。

您应该注意YesNoCancel都是不同的枚举,并且没有相同的值,因此您可以区别对待它们。

请记住,无论如何都要取消,因为如果用户点击对话框屏幕右上角的x按钮,则ShowDialog()的结果为DialogResult.Cancel

答案 2 :(得分:2)

以下是YesNoCancel合适的示例:

“您想在退出之前保存更改吗?”

  • 是 - 保存并退出
  • 否 - 不保存并退出
  • 取消 - 我意外按下按钮,不要退出。

答案 3 :(得分:2)

我确信它很容易想出一个场景,其中“No”作为响应和“Cancel”之间存在语义差异。传统上,“取消”应该在开始当前系列操作之前将程序返回到其状态。 “不”肯定没有同样的规则。

示例:

  

“你想删除10的文件4吗?”
  是:删除文件
  否:不要删除文件,转到文件5 of 10
  取消:退出此操作并返回尚未删除任何文件。

答案 4 :(得分:1)

以下是一个例子:

假设您要使用未保存的文件退出应用程序,例如文字处理程序。

退出时会显示一条确认信息:“您的文件中有未更改的文件。您要保存吗?”

在这种情况下:

是=保存文件并退出

否=退出并丢失更改

取消=中止退出并返回应用程序

答案 5 :(得分:1)

我猜“取消”用于中止整个操作。如果您正在处理一个巨大的过程,例如,将一组文件从一个目录移动到另一个目录,您可能想要向用户询问有关特定文件的信息 - 例如,确认用户是否确实要移动受保护的文件如果用户按“否”,则忽略该项并继续操作。如果用户按下“取消”,则中止整个操作(并且可能会回滚上一个操作)。

当然,对于一个小程序或一个简单的情况,“取消”和“否”没有区别。