当用户去删除项目并最初使用MessageBoxButtons.YesNoCancel时,我使用MessageBox显示确认消息。后来我改为YesNo,因为用户指出在这种情况下“No”和“Cancel”没有真正的区别。我的问题是......有什么区别?是否有理由使用YesNoCancel而不是YesNo?
答案 0 :(得分:7)
在你的情况下没有区别,因为你的问题只产生一个动作然后结束。
在标准用法中,“是否取消”通常会提出问题,“是”或“否”将选择其他操作,然后继续执行其他操作(如退出表单),“取消”将放弃所有操作。
例如:退出Word,你想保存吗? “是的,不,取消”。是和否将在保存或不保存的情况下继续退出,取消将不保存或退出。
无论你做什么,确保取消做了用户最期望的事情 - 当我必须专注于其他事情时,如果用消息框轰炸我会永远取消垃圾邮件。如果我取消了某些东西,我不想失去很多工作,因为我没有时间停下来正确处理它。
用户滥用取消: - )
答案 1 :(得分:3)
当然可以。例如,如果存在保存对话框并输入已存在的文件名,则对话框可能会询问您是否要覆盖该文件。
是的意思是覆盖文件。否可能意味着在文件名末尾添加“(1)”,或者提示输入其他文件名。取消可能意味着不要随便保存。
您应该注意Yes
,No
和Cancel
都是不同的枚举,并且没有相同的值,因此您可以区别对待它们。
请记住,无论如何都要取消,因为如果用户点击对话框屏幕右上角的x
按钮,则ShowDialog()
的结果为DialogResult.Cancel
!
答案 2 :(得分:2)
以下是YesNoCancel合适的示例:
“您想在退出之前保存更改吗?”
答案 3 :(得分:2)
我确信它很容易想出一个场景,其中“No”作为响应和“Cancel”之间存在语义差异。传统上,“取消”应该在开始当前系列操作之前将程序返回到其状态。 “不”肯定没有同样的规则。
示例:
“你想删除10的文件4吗?”
是:删除文件
否:不要删除文件,转到文件5 of 10
取消:退出此操作并返回尚未删除任何文件。
答案 4 :(得分:1)
以下是一个例子:
假设您要使用未保存的文件退出应用程序,例如文字处理程序。
退出时会显示一条确认信息:“您的文件中有未更改的文件。您要保存吗?”
在这种情况下:
是=保存文件并退出
否=退出并丢失更改
取消=中止退出并返回应用程序
答案 5 :(得分:1)
我猜“取消”用于中止整个操作。如果您正在处理一个巨大的过程,例如,将一组文件从一个目录移动到另一个目录,您可能想要向用户询问有关特定文件的信息 - 例如,确认用户是否确实要移动受保护的文件如果用户按“否”,则忽略该项并继续操作。如果用户按下“取消”,则中止整个操作(并且可能会回滚上一个操作)。
当然,对于一个小程序或一个简单的情况,“取消”和“否”没有区别。