许多人都知道"问题"类型的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);
你们都说两者中哪个更专业?
我真的不认为这是一个"专业"的问题,但它绝对与Microsoft的指导方针相矛盾。
MB_ICONQUESTION
标志的文档是这样说的(对于 MessageBoxIcon
枚举的"问题"成员也是如此):
消息框中将显示一个问号图标。不再建议使用问号消息图标,因为它不能清楚地表示特定类型的消息,并且因为消息作为问题的措辞可能适用于任何消息类型。此外,用户可能会将消息符号问号与帮助信息混淆。因此,不要在消息框中使用此问号消息符号。系统继续支持包含它只是为了向后兼容。
Windows 用户体验交互指南的标准图标部分非常明确地指出,问号图标应仅用于指示"帮助入口点":
问号图标
- 仅对帮助入口点使用问号图标。有关详细信息,请参阅帮助入口点指南。
- 不要使用问号图标提问。同样,请仅对帮助入口点使用问号图标。无论如何,无需使用问号图标提问 - 将主要指令作为问题呈现就足够了。
- 不要经常将问号图标替换为警告图标。仅当问题具有重大后果时,才将问号图标替换为警告图标。否则,不使用图标。
我强烈建议您阅读整个文档;它提供了许多有关选择正确图标的有用提示。但在这种特殊情况下,由于您要求用户确认涉及潜在数据丢失的操作,因此您绝对应该使用警告图标,与以下准则一致:
- 对于问题对话框,仅对具有重大后果的问题使用警告图标。
我会为对话框使用警告图标,警告用户将发生不好(或不可逆转)的事情。
警告图标的目的是将用户的注意力吸引到他即将犯错的事实上。
即使对话框包含问题,也是如此。
清除数据是需要正确突出显示的事情。必须警告用户,尤其是当它是"所有数据"时,并且如果您没有任何备份解决方案。因此,在这种情况下,第二个更合适
我通常遵循以下规则:如果您使用警告图标,它应该指示问题,例如:
清除数据的操作无法撤消。想继续吗?
一个问题更像是:
是否确实要清除所有数据?
文本还应是完整且语法正确的句子。
比图标更重要:如果您认为这是一个有潜在风险的操作,则应将"否"按钮设置为默认值,即使用采用MessageBoxDefaultButton
参数并指定以下内容的重载:
...,MessageBoxDefaultButton.Button2
最专业的做法是使操作不可执行,从而使确认/警告完全没有必要。
如果它真的无法撤消,那么请遵循Windows指南,正如Cody在他的答案中列出的那样。
他们同样专业或不专业,这取决于你的观点=)。您应该考虑要尝试向用户传达的内容。从您对问题的描述来看,我倾向于使用"警告",因为清除这些字段似乎可能会产生负面影响。
现实情况是你可以使用任何一个,而且看起来很好。 但这并不意味着它的设计正确。
清除所有用户的数据应该有一个警告图标。
原因何在? 您弹出的消息应该传达手头的情况。 使用 ?图标可能无法传达正确的信息。 使用警告图标确实如此 - 因为应该警告用户应用程序打算清除她的所有数据。
老实说。我会说"Are you sure you wish to clear all data"
而不是"Really clear all data?"
... 不知道图标是什么。
有关图标的信息,您可以阅读其他帖子!