在Windows消息框中,我应该使用警告图标还是问号图标?

16

很多人知道“question”类型的MessageBoxIcon。如果您对这个图标不是特别熟悉,它只是一个加强版的问号。我想知道在专业应用程序中是否可以使用这个图标。例如,假设我有一个按钮,点击该按钮将清除整个表单上的所有文本字段。当用户点击按钮时,我想提醒用户他即将执行的操作。我可以写以下任一消息:

MessageBox.Show("Really clear all data?", "Clear confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

MessageBox.Show("Really clear all data?", "Clear confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);

你们认为这两者哪一个更专业?

9个回答

28

我并不认为这是“专业性”的问题,但它确实与微软的指南相矛盾。

MB_ICONQUESTION 标志的文档(以及 MessageBoxIcon 枚举中的“Question”成员)都有如下说明:

在消息框中显示一个问号图标。现已不推荐使用问号消息图标,因为它并不能清晰地表示特定类型的消息,并且将消息表述为一个问题,可能适用于任何消息类型。此外,用户可能会混淆带有问号的消息符号和帮助信息。因此,请勿在消息框中使用此问号消息符号。仅出于向后兼容的目的,系统仍然支持其包含。

而 Windows 用户体验交互指南的 标准图标 部分则非常明确地指出,问号图标只应用于表示“帮助入口点”:

问号图标

  • 仅将问号图标用于帮助入口点。有关详细信息,请参阅帮助入口点指南。
  • 不要使用问号图标来提出问题。同样,只将问号图标用于帮助入口点。没有必要使用问号图标来提问——将主要指令表示为问题就足够了。
  • 不要经常将问号图标替换为警告图标。仅当问题具有重要后果时,才应将问号图标替换为警告图标。否则,请不要使用图标。

我强烈建议您阅读整个文档,它提供了选择正确图标的许多有用提示。但在这种特定情况下,因为您要求用户确认涉及潜在数据丢失的操作,您应该明确使用警告图标,与此指南保持一致:

  • 对于问题对话框,请仅针对具有重大后果的问题使用警告图标。

无法再要求更多了,对于这个相当简单的问题,得到的回答已经足够了。非常感谢你,Cody。 - user725913
3
@Evan:这可能是一个简单的问题,但却是一个非常好的问题。赞扬你花时间关心应用程序中的小细节。这是一款非常精致的应用程序的标志;你的客户非常幸运。 - Cody Gray

4
我会在警告对话框中使用警告图标,以提醒用户即将发生某些不好的(或不可逆转的)事情。
警告图标的目的是吸引用户的注意力,提醒他即将犯错。即使对话框中包含问题,这一点也是正确的。

3

清除数据是需要正确强调的事情。特别是在清除所有数据时,如果您没有任何备份解决方案,必须警告用户。因此,在这种情况下第二个选项更为合适。


2

重要的不是图标,如果你觉得它可能是一个潜在的风险动作,应该将“否”按钮设为默认选项,即使用一个带有MessageBoxDefaultButton参数的重载,并指定:

...,MessageBoxDefaultButton.Button2

在使用问号图标方面,哪里体现了一致性?为什么这比另一种方法更一致?为什么您建议忽略该成员的显式文档,并推荐不要使用它? - Cody Gray
@Cody:“在使用问号图标方面,哪里有一致性可言?” - 显然我太老了,不跟上最新的UI指南趋势 - 已编辑。 - Joe
哈哈,说得对。我完全同意选择一个合理的默认按钮,最好是采取最少破坏性可能行动的按钮。 - Cody Gray

2

我通常遵循这样一个规则,如果你使用的是警告图标,它应该指示问题,例如:

数据清除不能撤消。您是否想继续?

而提问则更像是:

确定要清除所有数据吗?

文本也应该是完整和语法正确的句子。


2
最专业的做法是使操作可撤销,从而完全不需要确认/警告。
如果确实无法撤销,则遵循Windows指南,如Cody在他的答案中列出的那样。

关于让事情可撤销的观点绝对是一个好主意,因为我们都知道用户反正不会去读对话框(http://blogs.msdn.com/b/oldnewthing/archive/2003/09/01/54734.aspx)。 - Cody Gray

1

从不同的角度来看,它们可能是同样专业或不专业的 =)。您应该考虑要向用户传达什么信息。根据您对问题的描述,我倾向于使用“警告”,因为清除这些字段可能会产生负面影响。


0

实际上,你可以使用任何一种方式,看起来都不错。但这并不意味着它被正确设计了。

清除所有用户数据应该有一个警告图标。

原因是弹出的消息应该传达当前情况。使用问号图标可能无法传达正确的信息。而使用警告图标则可以 - 因为用户应该被警告应用程序打算清除她的所有数据。


0
说实话,我会说 "你确定要清除所有数据吗?" 而不是 "真的清除所有数据吗?"... 不管图标是什么。
有关图标的信息,您可以阅读其他帖子!

这只是一个例子 - 不过无论如何感谢您的回复。 - user725913
除了我回答中讨论的图标指南之外,考虑您的消息是否与Windows语气一致也很重要。 - Cody Gray

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接