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

许多人都知道“问题”types的MessageBoxIcon 。 如果你对这个图标不是特别熟悉,那只是一个美化的问号。 我很好奇这个图标在专业应用程序中是否可以接受。 例如,我们假设我有一个button,单击它时将清除整个表单上的所有文本字段。 当button被点击时,我想警告用户他的行动将要做什么。 我可以写下面的任何一个:

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

要么

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

你们都会说哪一个更专业?

Solutions Collecting From Web of "我应该在Windows消息框中使用警告图标还是问号图标?"

我并不认为这是一个“专业化”的问题,但这绝对是与微软的指导方针相矛盾的。

MB_ICONQUESTION标志的文档有这样的说法(和MessageBoxIcon枚举的“Question”成员相同):

消息框中出现一个问号图标。 问号消息图标不再被推荐使用,因为它不能清楚地表示特定类型的消息,并且因为消息的问题可能适用于任何消息类型。 另外,用户可以将消息符号问号与帮助信息混淆。 因此,不要在消息框中使用此问号消息符号。 系统只是为了向后兼容而继续支持它的包含。

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

问号图标

  • 仅使用问号图标作为帮助入口点。 有关更多信息,请参阅帮助入口点准则。
  • 不要使用问号图标提问。 再次使用问号图标仅用于帮助入口点。 无论如何,都不需要使用问号图标来提问 – 将主要指令作为一个问题就足够了。
  • 不要经常用警告图标替换问号图标。 只有当问题具有重大后果时,才将问号图标替换为警告图标。 否则,请不要使用图标。

我强烈建议您阅读整个文档; 它提供了很多有用的提示选择正确的图标。 但是,在这种特殊情况下,由于您要求用户确认涉及潜在数据丢失的操作,因此您应该使用符合本指南的警告图标:

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

我会用对话框的警告图标来警告用户会发生什么坏事 (或不可逆的)。

警告图标的一点是要提醒用户注意他即将犯错的事实。
即使对话框中包含问题,情况也是如此。

清理数据是需要正确突出显示的。 必须警告用户,尤其是All Data时,如果您没有任何备份解决方案。 因此,第二个在这种情况下更合适

我通常遵循的规则,如果你使用警告图标,它应该指出的问题,如:

清除数据不能撤消。 想继续吗?

一个问题会更像是:

你确定要清除所有的数据?

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

比图标更重要:如果您觉得这是一个潜在的风险行为,您应该使No按钮成为默认值,即使用带有MessageBoxDefaultButton参数的重载并指定:

 ...,MessageBoxDefaultButton.Button2 

最专业的做法是将行动撤销,从而使确认/警告完全没有必要。

如果真的不能撤销,那么按照Cody在他的回答中列出的Windows指导原则。

他们同样专业或不专业取决于你的观点=)。 你应该考虑你想传达给你的用户。 从你对这个问题的描述来看,我会倾向于使用“警告”,因为清理这些领域似乎有负面的后果。

它的现实是你可以使用,它会看起来很好。 但是这并不意味着它的设计是正确的。

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

原因? 你弹出的消息应该传达出现在的情况。 使用 ? 图标可能没有传达正确的信息。 使用警告图标虽然 – 因为应该警告用户应用程序打算清除她的所有数据。

老实说,我会说"Are you sure you wish to clear all data"而不是"Really clear all data?" …没有任何图标是什么。

有关图标的信息,您可以阅读其他帖子!