毫无疑问,应用程序的界面对用户非常重要——无论代码多么卓越,如果用户发现应用程序很难
使用,那么难于很好地接受它。因此,在开发应用程序的过程中,开发人员必须重视用户界面的友好
性。本文以VisualBasic为例,向读者介绍创建友好的用户界面。
界面设计基础
1.什么是好的界面
设计用户界面时,最好是先看看Microsoft或其他公司比较优秀的应用程序,我们会发现许多通用
的东西,比如工具栏、状态条、工具提示、上下文菜单以及标记对话框等。也可以凭借自己使用软件
的经验,想一想曾经使用过的一些应用程序,哪些很好用。
另外,还要注意到大多数成功的应用程序都提供多种选择,来适应不同用户的偏爱。例如
MicrosoftWindows的“资源管理器”允许用户通过菜单,用键盘或者鼠标拖放来复制文件。提供同一
功能的多种操作方式,会扩大应用程序的吸引力。至少应该使所有的功能都能被鼠标和键盘所访问。
2.Windows界面准则
Windows操作系统的主要优点就是为所有的应用程序提供了公用的界面。知道如何使用基于
Windows应用程序的用户,很容易学会使用其他应用程序。而与创建的界面准则相差太远的应用程序不
易让人喜欢。
菜单就是这方面很好的一个例子——大多数基于Windows的应用程序都遵循这样的标准:“文件”
菜单在最左边,然后是“编辑”、“工具”等可选的菜单,最右边是“帮助”菜单。子菜单的位置也
很重要。用户本期望在“编辑”菜单下找到“复制”、“剪切”与“粘贴”等子菜单,若将它们移到
“文件”菜单下会引起用户的混乱。不要偏离已经创建的准则太远,除非有很好的理由这样做。
3.控件的位置
通常,在用户界面中,应该将重要的或者频繁访问的元素放在显著的位置上,而不太重要的元素
就应当降级到不太显著的位置上,以确保越是重要的元素越要很快地显现给用户。
对于大多数自然语言来说,我们都习惯于在一页之中从左到右、自上到下地阅读。对于计算机屏
幕也如此,大多数用户的眼睛会首先注视屏幕的左上部位,所以最重要的元素应放在屏幕的左上部
位。例如,如果窗体上的信息与用户有关,则它的名字字段应当显示在它能最先被看到的地方。而命
令按钮,如“确定”或“下一个”,应当放置在屏幕的右下部位(因为用户在未完成对窗体的操作之
前,通常不会访问这些按钮)。
应当尽量把元素按功能或关系进行逻辑地分组,比如定位数据库的按钮(如“下一条”、“最后
一条”)应当被形象地分成一组,而不是分散在窗体的四处。再如,通常将各字段与地址分在一组,
因为它们联系紧密。在许多情况下,可以使用框架控件来进行分组。
4.界面元素的一致性
在用户界面设计中,一致性是一种优点。一致的外观与感觉可以在应用程序中创造一种和谐。如
果界面缺乏一致性,则很可能引起混淆,并使应用程序看起来没有条理,甚至可能引起对应用程序可
靠性的怀疑。
在VisualBasic中虽然有大量的控件可供使用,但应尽可能地选择能很好适合特定应用程序的控件
子集。例如,虽然列表框、组合框、网络以及树等控件都可用来表示信息列表,最好还是尽可能使用
一种类型。
还有,尽量恰当地使用控件,虽然TextBox控件可以设置成只读,并用来显示文本,但Label控件
通常更适用于该目的。在为控件设置属性时要保持一致性,如果在一个地方可编辑的文本使用白色背
景,除非有很好的理由,否则不要在别的地方又使用灰色。
在应用程序中不同的窗体之间保持一致性对其可用性有非常重要的作用。如果在一个窗体上使用
了灰色背景以及三维效果,而在另一个窗体上使用白色背景及二维效果,则这两个窗体就显得毫不相
干。
5.空白空间
有的用户界面中使用空白空间有助于突出元素和改善可用性。一个窗体上有太多的控件会导致界
面杂乱无章,使得寻找一个字段或者控件非常困难,在设计中需要插入空白空间来突出设计元素。
各控件之间一致的间隔以及垂直与水平方向元素的对齐可以使设计更可用。就像杂志中的文本那
样,安排得行列整齐、行距一致,整齐的界面也会使其容易阅读。
VisualBasic提供了几个工具,使得控件的间距、排列和尺寸的调整非常容易。“排列”、“按相
同大小制作”、“水平间距”、“垂直间距”和“在窗体*”等命令都可以在“格式”菜单中找
到。
6.颜色
在界面上使用颜色可以增加视觉上的感染力,少量明亮色彩也可以有效地引起人们对重要区域的
注意。但是,应当尽量限制应用程序所用颜色的种类,而且色调也应该保持一致。如果可能的话,最
好坚持标准的16色调色板。
7.图像和图标
图片与图标的使用也可以增加应用程序在视觉上的趣味,但是,细心的设计也是必不可少的,如
果用户不能很容易地识别图标所表示的功能,就会很糟糕。在设计工具栏图标时,应查一下其他的应
用程序以了解已经创建了什么样的标准。例如,许多应用程序用一张角上有卷边的纸来表示“新建文
件”图标。也许还有更好的比喻来表示这一功能。但改用其他的表示方法会引起用户的混淆。
8.字体
字体也是用户界面的重要部分,因为它们常常给用户传递重要的信息。需要选取在不同的分辨率
和不同类型的显示器上都能容易阅读的字体。应当尽量使用标准Windows字体,如Arial、
NewTimesRoman或者System。如果使用了非标准的字体,那么当用户的系统中没有包含指定的字体时,
系统会使用替代的字体,其结果可能与设想的完全不一样。
还有,在选取字体时,设计的一致性非常重要。大多数情况下,不应当在应用程序中使用两种以
上的字体。
错误处理
用户在使用程序的时候总会出现这样那样的问题。程序设计人员在设计用户界面时,应尽量全面
地考虑可能出现的错误,并判断哪一个需要用户交互作用,哪一个可以按事先安排的方案解决。
1.创建容易理解的对话框
偶尔应用程序中会出现错误,需要为解决这种情况做出判断。这通常作为代码的分支出现
If...Then语句或者Case语句。如果这个判断要与用户交互,此问题通常用对话框来提交给用户。
相信任何程序员都会使用对话框与用户交互,关键问题是要采取用户容易理解的语言。比如这样
的消息:“硬盘C的扇区被损坏或不能访问。中止、重试、忽略?”,这对一般的用户而言不大好理
解。更好的表达可以是“在C盘上存文件有问题,请把文件存于A盘。存不存文件?”
当为应用程序创建对话框时,应想着用户。这个消息给用户传达了有用的信息吗?它容易理解
吗?命令按钮表示的选择明确吗?这个选择适合给定的条件吗?
2.不用对放大框的错误处理
当错误出现时不一定要打断用户。有时更可取的是不通知用户而用代码来处理错误,或者以不停
止用户工作流程的方法来提醒用户。很好的例子是MicrosoftWord中的“自动更正”功能:如果普通单
词拼错了,Word自动修改它;如果不常用单词拼错了,在其下划一条红线提醒用户以后改正。
有大量的技巧可以采用:
(1)在“编辑”菜单中添加“撤消”功能。对于删除等情况,与其用“确定”对话框来打断用
户,还不如确保他们做出正确的决定,并提供“撤消”功能以备他们以后改变主意。
(2)在状态栏或图标上显示消息。如果错误不影响用户当前的任务,不要停止应用程序。使用状
态栏或亮色警告图标来警告用户——当他们准备好后可以处理该问题。
(3)直接改正问题。有时错误的解决办法很显然,例如,当用户试图存文件时磁盘已满,则在其
他驱动器中检查寻找空间。如果空间可用,则保存该文件;在状态栏中显示一条消息告诉用户做了些
什么。
设计完善的帮助体系
不论用户界面设计得多么好,有时用户总需要帮助。应根据操作的难易程度和用户的类别,为程
序设计层次不同但相对完善的帮助体系,可以采用的方法包括建立联机帮助、工具提示、状态条、
“这是什么”帮助等。
1.联机帮助
联机帮助是任何应用程序的重要部分,它通常是用户有问题时最先查看的地方。甚至简单的应用
程序也应该提供“帮助”。
在设计“联机帮助”时,要记住它的主要目的是回答问题。创建主题名称与索引条目时尽量用用
户的术语,例如,“我如何格式化页面?”比“编辑”、“页格式”菜单更容易找到主题。
很多情况下,还要提供上下文相关的帮助,如果用户按下F1键后,屏幕上立刻出现了相关的帮助
画面,用户会感到非常满意。
2.工具提示
工具提示是个小标签,当鼠标指针在控件上停留时即显示相关帮助信息。当用户在用户界面上搜
索时,工具提示是一种向他们显示信息的好方法。
大多数VisualBasic控件都包含用来显示工具提示的属性ToolTipText,可以用这个属性为控件提
供工具提示,如:CmdPrint.ToolTipText=“打印文档”
3.状态显示
状态显示是提供那些不太适合工具提示的指令或消息的一种好方法,包括在VisualBasic的专业版
与企业版中的状态条控件能很好地显示消息,Label控件也能用作状态显示。
在状态显示中显示的文本可以用以下两种方法之一来更新:用控件或窗体的GotFocus事件,或者
用MouseMove事件。
4.“这是什么”帮助
“这是什么”帮助是指当用户选取窗体右上角的小问号并单击控件,或者直接在控件上按下鼠标
右键时,出现的帮助信息。“这是什么”帮助提供了和弹出式“帮助”主题的链接,稍复杂的应用程
序就应该提供这种帮助形式。