65.9K
CodeProject 正在变化。 阅读更多。
Home

对话框指南

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.29/5 (5投票s)

2010年2月20日

CPOL

12分钟阅读

viewsIcon

19430

在设计和实现对话框时必须牢记的指南。

对话框开发指南

对话框旨在以舒适、安全和易读的方式与用户进行数据输入/输出。它们可以以模态或非模态模式显示。非模态模式允许用户在其他窗口和对话框之间切换。模态模式会阻止对父窗口以及同级对话框的任何用户输入,例如,它会阻止从主菜单项进行选择。如果应用程序积极利用模态和非模态对话框,那么关注它们的协作以及与其他应用程序对象的交互非常重要。如果模态对话框的内容是预期的、自然的并且符合人体工程学要求,那么它就被认为设计得很好。

以下是一系列指南,明智地遵守这些指南可以帮助您创建可用的对话框。

指南 27。我猜这是最重要的指南。保持用户界面尽可能简单。为每个对话框配备帮助系统。这包括在对话框的系统菜单(Alt+Space)中添加“帮助”菜单项,该菜单项打开应用程序的帮助文件,并导航到关于当前对话框的相应页面(图表、描述、用法、技巧等)。这是最小化/最大化/还原/关闭按钮组中的问号按钮。当用户单击它时,光标附近会出现一个问号,并显示一个带有相应描述的窗口,当用户单击任何对话框控件/元素时会显示此窗口。用户有权知道为什么某个控件被禁用。在这种情况下,您应该在状态栏或弹出式工具提示中提供信息。如果不允许对控件进行任何输入,请告知用户并提供处理此问题的方案,或解释为什么最好不要更改此值。尽可能提供原地信息或有价值的参考。市场上有许多软件产品。客户会在大约一个小时内,最多一天内决定是否使用某个产品。用户会阅读大量手册和帮助文件的假设在策略上是错误的,他们不会。用户在开始工作时会认为他们已经掌握了该应用程序。如果他/她不理解什么,他/她希望得到快速简短的答案。如果软件无法回答他的问题,它就会被丢进回收站。对话框(以及应用程序本身)必须健壮、易于操作,并且易于掌握

指南 01。您必须将用户视为最愚蠢、最懒惰的人。认为“显而易见”、“大家都知道”、“连孩子都能理解”是战略性错误——他们不会!将您的产品受众水平保持在尽可能低的水平。

指南 02。如果您打算仅出于信息目的使用对话框,或者快速获得简短的“是/否”答案,那么最好使用标准的MessageBox。用户知道如何处理它,因此选择会快速且毫无困难地做出。建议根据每条消息框的内容确定相应的图标。此类型的对话框应仅使用一次(我的意思是避免连续出现)。

指南 03。您不必认为您的应用程序是用户正在处理的唯一应用程序。因此,在图形用户界面中频繁嵌入标准元素,而不是各种花哨的元素。例外情况是游戏或某些多媒体产品的界面。最好记住其他程序也积极使用对话框。用户熟悉那些框中的控件,并且似乎对它们的某些功能有所期待。并且她对图形用户界面的可用性有一些看法。

指南 04。本指南是上一条的延续。为商务用户创建精美的图形是在浪费时间和金钱。另外,请避免使用像“U r right”、“w8t”、“You r the BOSS!!!”这样的俏皮按钮标签,以及其他非标准用语,尤其是俚语。

指南 05。不要考虑用户屏幕分辨率和颜色质量。对话框的尺寸必须小于或等于 800x600(640x480,如果存在过旧的 PC 或最终设备屏幕较小,则更小)。例外情况当然是游戏,以及用于特定企业的定制应用程序,其中提供了最低屏幕分辨率的信息。例如,应该是 1024x768。带有绘画元素的控件(如图表)必须用不同的颜色质量进行测试。

指南 06。最好为对话框使用模态模式,并带有可用于将窗口移动到新位置的标题。如果可以更改大小并提高对话框的便捷性,那么尺寸可变是好的,如果都一样,那么最好使窗口大小固定,或者至少设置其最大尺寸。在所有应用了窗口尺寸调整的情况下,最好设置一个允许保存对话框可用性的最小尺寸。如果您仍然选择了非模态对话框,最好将其设为单例。

指南 07。本指南是上一条的延续。如果您允许用户更改窗口大小和位置,他们会随心所欲地进行操作。并且最终的大小和位置将考虑到其便捷性。因此,恢复用户选择的大小和位置将是一个好主意。否则,用户每次调整窗口大小和移动对话框时都会感到恼火,或者会放弃此选项。无论如何,保存和恢复用户偏好将提高最终用户满意度。

指南 08。系统菜单中应有两个菜单项“移动”和“关闭”。如果窗口是可调整大小的,则添加第三个菜单项“大小”。您可以通过单击Alt+Space快速确保您的应用程序支持此功能。其他项目是可选的。所有菜单项都必须响应单击并执行某个操作。如果操作失败,最好通过消息或状态行告知用户。否则,沉默会使您感到困惑,并使您认为应用程序不起作用。

指南 09。对话框区域有两种控件:输入输出控件和用户确认控件(如“确定”和“取消”按钮)。最好使第二类控件具有相同的大小和外观,并将它们放在一起。顺便说一句,遵循所有应用程序 UI 元素的唯一样式是一个好习惯。在窗体上布置控件有两种主要方法。第一种是编辑器占据窗体的顶部和中心部分,而确认控件则在底部以一行排列;第二种是所有输入输出控件都位于窗体的左中心部分,而按钮则在一列中排列。在确认控件附近留有空白。

指南 10。在窗体右侧以列形式布置确认控件是更常用的方法。因为您可以将更多的按钮排成一列,而不是排成一行(大小相同)。无论您选择哪种方式,在所有应用程序中都遵循这种选择是一个好习惯。这使得应用程序 GUI 更加友好,并允许最终用户花费一点时间在对话框中寻找合适的控件。

指南 11。根据编辑信息的 [重要性] 排列控件。最重要的控件必须排在前面,价值较低的控件(尤其是依赖项)按信息量降序排列。

指南 12。指南 #11 的效果。当所有控件都在窗体上并且对话框设计完成后,就可以设置(或修改)制表符顺序。制表符编号根据控件添加到窗体上的顺序分配。此顺序通常与自然顺序不符。必须安排制表符顺序以提高对话框的可用性。根据用户如何处理窗体来安排制表符顺序。下面有一个主要原则。输入字段必须在队列前面,然后是确认按钮(OK),然后是取消按钮,然后是其他按钮。

指南 13。只有用户可见的控件才能获得制表符焦点。焦点控件必须始终在可见区域内。如果焦点移出窗体,将会使用户感到困惑。因此,如果制表符控件超出了可见区域,请滚动窗体使其可见。

指南 14。如果控件数量过多,请不要堆积它们——使用选项卡控件的页面。将控件分组到更小的组中,并将它们放在单独的页面中。也对确认按钮进行排序。仅与控件组相关的按钮必须放在相应的选项卡中。可用于管理整个对话框行为的控件必须在任何选定的选项卡下可访问。

指南 15。请记住,用户可以按任何顺序选择选项卡。将选项卡视为窗体扩展,因此控件可以在任何时间以任何顺序选择。

指南 16。如果控件的遍历顺序很重要,并且其集合取决于用户选择的选项,您应该将对话框设计成向导形式。这允许将任务分解成部分,并在收集信息时指导用户。

指南 17。如果应用程序在用户按下按钮后启动任何具有不可逆结果的操作(例如一次性数据转换),则该按钮必须具有有意义的标签——代表操作的动词。例如,如果刻录磁盘开始(如果用户取消此操作,磁盘可能会丢失),则在用户按下按钮后,该按钮应标记为“刻录”,以提请用户注意后续的应用程序操作。

指南 18。对话框的位置必须是自然或传统的。新工具箱必须出现在应用程序屏幕的顶部,其他工具箱位于该处(或工具面板所在的位置,我指的是顶部以外的任何位置。例如,左侧),状态行必须出现在底部。其他对话框必须相应地集中在应用程序屏幕上,更关键的对话框必须相应地集中在桌面上。这有助于快速找到它们。如果这是非模态(或可停靠)对话框,它必须放置在与其相关的对象附近,但不要重叠重要信息。一个很好的例子是“查找”对话框。它会在屏幕上移动以显示搜索文本。这是对用户数据和用户时间的尊重。

指南 19。对话框应具有默认按钮。它是按下“Enter”键的同义词。这使得无需使用鼠标即可快速关闭对话框并确认。同时,对话框应有一个取消输入的按钮。该按钮必须与按下“Esc”键相关联。这使得在不使用鼠标的情况下关闭对话框成为可能,但同时告诉用户已取消输入。通常,确认按钮是“OK”,取消按钮是“Cancel”。

指南 20。应用程序必须正确处理以下任何事件:用户单击“取消”按钮、用户按下“Esc”键以及用户单击窗体右上角的“叉”。在取消操作需要执行某些附加操作的情况下,这一点尤其重要。在窗体关闭事件处理程序中处理取消操作是一个好习惯,如果正在运行适当的操作。您可以这样做,因为关闭窗体意味着失去对进程的控制,因此最好终止(取消)它。否则,如果进程必须继续运行,请提供一个附加按钮,例如“在后台执行”。

指南 21。如果控件没有任何标签,请附带一个标签控件,并将其控件目标文本放在其关联的标签中。此标签必须实现在获取焦点后立即将焦点切换到其关联控件。在大多数 IDE 中,只需将标签的制表符顺序设置为控件的制表符顺序之前的顺序即可。

指南 22。如果可以任意顺序切换输入焦点,则非常方便。这可以通过加速器来完成。按钮标签中带下划线的字母表示使用该键(通常是“Alt + 键”组合)将焦点设置在此按钮上。如果控件没有标签,例如文本编辑控件,则附带的标签由一个带下划线的字母组成,该字母是该控件的加速器。开发人员使用 & 符号在控件标签内分配加速器,例如“&OK”。作为下划线的替代方法,您可以在描述的末尾将加速器字母放在括号中。

指南 23。对于大多数数据类型,都有标准的编辑控件。因此,仅在特殊情况下创建自定义控件。Microsoft 产品(或您为其实现解决方案的 OS 的任何软件领导者)是获取想法的好来源。例如,可以使用带树控件的下拉列表而不是列表。有一种强烈的诱惑将其实现为经典的下拉列表控件,但这太复杂了,并且可能会在您的程序中引入错误,就像 Microsoft 所做的那样,将下拉窗口实现为带有树控件、其上的“OK”和“Cancel”按钮的模态对话框。如果您为控件添加了某些非标准行为(例如拖放功能),请务必告知用户(在此类控件下方添加说明)。

指南 26。如果对话框用于编辑某个实体,则其控件(实体属性)在加载后必须由相应的数据初始化。如果该实体是新实体,则总的建议是尽可能使用默认值初始化字段。这些默认值可以取决于当前上下文。最佳实践是将此默认初始化委托给默认实体构造函数(或任何参数集),然后从创建的对象中获取数据。这种做法减少了代码重复,并表明了健全的开发。

所有这些指南都不自称为标准或规则。但是,如果您按照提供的指南进行强调,您的对话框将更加用户友好。您的应用程序将拥有更多满意的用户。

历史

  • 2010年2月20日:初始发布
© . All rights reserved.