VisualBasic界面设计大观

VisualBasic界面设计大观,第1张

VisualBasic界面设计大观,第2张

前言
用户界面是应用程序最重要的部分。对于用户来说,界面就是应用,感觉不到代码在幕后执行。无论花多少时间和精力来编译和优化代码,应用程序的可用性仍然在很大程度上取决于界面的质量。第一步设计一个完美的界面是非常困难的,需要在用户的参与下反复多次。如果你想设计一个用户友好的界面,你首先要知道什么是好的界面,并为你想开发的应用做一个初步的规划和设计。
二。界面设计的初步规划
在设计用户界面之前,参考微软或者其他公司的一些应用。在这个过程中,我们会发现很多常见的东西,比如工具栏、状态栏、工具提示、上下文菜单、标记对话框等。同时也要依靠自己使用软件的经验,思考一些以前用过的界面很好的应用,哪些可以吸收利用。但是记住个人喜好不等于用户喜好,用户的意见和需求一定是最近吸收的。众所周知,用户越早参与设计过程,设计师花费的时间和精力就越少,他们创造的界面就越好,越实用。
在设计应用程序界面时,应该对整个系统界面进行初步规划。应该考虑使用单文档还是多文档样式?需要多少种不同的形式?菜单中将包括哪些命令?你想用工具栏重复菜单功能吗?提供什么对话框与用户交互?你需要什么样的帮助?
界面设计还需要考虑应用程序的用途和预期用户等问题。经常使用的应用程序和偶尔使用的辅助程序应区别对待,用于显示信息的应用程序应不同于用于收集信息的应用程序。目标是针对新手的应用,界面设计要求简单明了,但是对于有经验的用户来说可以比较复杂。如果系统计划在全球发布,那么语言和文化也是设计师必须要考虑的。
三个界面控件的设计
整个系统的界面风格确定之后,就需要设计具体的界面了。在这个过程中,我们应该考虑完成系统功能需要哪些控件,这些控件之间的关系,以及它们的相关性和重要性。
1符合Windows界面准则
Windows操作系统的主要优势在于它为所有应用程序提供了一个通用的界面。如果用户知道如何使用基于Windows的应用程序,他们可以很容易地学会使用其他应用程序。然而,远离既定接口标准的应用程序不容易被接受。比如菜单的设计,大多数基于Windows的应用都遵循这个标准:“文件”菜单在最左边,后面是“编辑”、“工具”等可选菜单,“帮助”菜单在最右边。如果你把帮助菜单放在前面,会降低应用程序的可用性。子菜单的位置也很重要。用户期望在“编辑”菜单下找到子菜单,如“复制”、“剪切”和“粘贴”。如果将它们移到“文件”菜单,用户将无法理解它们。不要偏离既定的指导方针太远,除非有充分的理由这样做。
2确定控件的位置
在大多数界面设计中,并不是所有的界面元素都同等重要。仔细考虑是必要的,以确保越重要的元素越快出现在用户面前。重要的或经常访问的元素应该放在显著的位置,而不太重要的元素应该放在不太显著的位置。一般用户的眼睛会先看屏幕的左上方,所以最重要的元素应该放在屏幕的左上方。例如,如果表单上的信息与客户相关,那么它的名称字段应该显示在第一个可以看到的地方。像“确定”或“下一步”这样的按钮应该放在屏幕的右下角。用户通常在完成表单操作之前不会访问这些按钮。
对控件进行分组也很重要。尽量按功能或逻辑关系分组。例如,用于数据库操作的按钮应该在视觉上分组,而不是分散在表单中,因为它们的功能是相互关联的。在许多情况下,您可以使用框架控件来帮助加强控件之间的这种联系。
3保证界面元素的一致性
在用户界面设计中,一致的外观可以在应用中营造出和谐的美感。如果界面缺乏一致性,会使应用程序看起来混乱无序,降低人们使用应用程序的兴趣。
为了保持视觉一致性,应该在应用程序开发之前创建总体设计策略。应该提前确定控件类型、控件大小、分组标准、字体选择等设计元素,可以创建设计模板来帮助设计。有时,某些功能有许多控件可用,在设计时应选择最适合特定应用的控件子集。虽然可以使用列表框、组合框、网格、树等控件来表示信息列表,但是每个界面中应该尽可能使用同一个控件。
在设计过程中,我们应该遵守通常的惯例,正确使用控件。尽管TextBox控件也可以将其只读属性设置为显示文本,但Label控件更适合于此目的。设置控件属性时也要保持一致。如果你在一个地方为可编辑文本使用白色背景,除非有充分的理由,否则不要在其他地方使用灰色。表单的一致性对于应用程序的可用性也起着非常重要的作用。如果在一个窗体上使用灰色背景和3D/33 . shtml ' target = ' _ blank ' class = ' article ' >三维效果,而在另一个窗体上使用白色背景,则这两个窗体是不相关的。明智的选择是确定一个类型,并在整个应用程序中保持一致。
4美化界面和控件
尽量使用具有立体效果的控件,使用户界面具有动态性。例如,命令按钮上使用的三维立体效果使它们看起来像被按过一样。如果你设计了一个边框扁平的命令按钮,你就会失去这种动态感,这样你就不能明确的告诉用户这是一个命令按钮。文本框也提供了一种动感,用户可以期待带有边框和白色背景的框,其中包含可编辑的文本。也有可能显示一个没有边框的文本框(BorderStyle = 0),这样看起来更像一个标签,不能明确提示用户是可编辑的。
在用户界面中使用空 white 空有助于突出元素并提高程序的可用性。空 White 空是表单控件之间及其周围的空白色区域。一个表单上的控件太多会导致界面混乱,很难找到字段或控件。在设计中,需要插入空白空来突出设计元素。控件之间均匀的间距以及垂直和水平元素的对齐会让用户感觉更好。在界面上使用色彩会增加用户的视觉感染力,色彩能激起人们强烈的情感。每个人对颜色的喜好差异很大,用户的口味也会不一样。一般来说,采用一些柔和中性色比较保守。有时少量的亮色可以用来突出或吸引人们对重要区域的注意。预期的读者和他们试图传达的语气和情绪也会影响颜色的选择。例如,亮红色、绿色和黄色适合儿童使用的应用程序,但不一定适合银行应用程序。
图片和图标的使用也可以增加应用程序界面的视觉趣味。带有代表各种功能的图标的工具栏是一个非常有用的界面设备,但是如果你不能清楚地识别图标所代表的功能,就会适得其反。设计工具栏图标时,首先要了解约定俗成的标准。例如,许多应用程序使用一张在开角有卷边的纸来表示“新文件”图标,如果使用其他表示方式,用户会感到困惑。考虑图像的文化意义也很重要。不同的人对同一形象会有不同的理解。同时,在设计自己的图标和图像时,要尽量简单。
字体也是用户界面的重要组成部分,因为它们经常向用户传达重要信息。除非您计划按应用程序配置字体,否则您应该坚持使用标准的Windows字体,如Arial、New Times Roman、System等。通常手写字体或其他装饰字体的打印效果要比屏幕上的效果好。注意不要在应用中使用过多的字体,也不要设置过小的字体,以免影响用户阅读。
界面设计也要考虑简化的原则。从美学的角度来看,整洁、简单和清晰的设计是可取的。界面设计中一个容易犯的错误就是试图用界面去模仿现实世界的物体,这是不必要的,对用户来说也没有真正的意义。是设计好的界面,既能完成功能,又能让用户感觉干净舒适。
四个结论
总之,界面的设计要以用户为中心,满足用户的需求。在此基础上,要充分考虑界面的构成或布局、界面元素的位置、界面元素的一致性等问题来美化界面,提高应用程序界面的可用性和美感。

有时,当一个窗口中有许多控件时,指导用户下一步做什么是最好的策略。
在Visual Basic的编程中,我们可以使用语句:Object。SetFaocus使我们想要的控件获得输入焦点。例如,我们在Form1中添加一个button Command1和一个文本输入Text1,双击button控件,然后键入下面的代码:
Text1。SetFocus
按F5运行程序,就可以看到了。此外,我们还可以使用语句:Sendkeys“{ TAB }”来获得下一个控件的焦点,但我们需要在设计时确定每个控件的索引值。(在属性窗口中)让控件感觉自己的工作已经完成,主动放弃焦点,这样会让用户觉得应用很聪明,也减少了用户犯错的几率。
但是,当两个具有焦点切换的控件之间存在一定距离时,上述方法有时不足以吸引用户的注意力,因此一个好的解决方案是将鼠标箭头也移动到控件上。可惜VB不支持鼠标移动,只好求助于API函数,API函数SetCursorPos可以让我们随心所欲。
下面是子例程MoveCursorOn,它允许鼠标在指定的控件上移动。
请将以下代码放入声明部分:
type point a pix As Integer As Integer end type Declare subsetsetsetsetescursorpos Lib " User "(Byval x As Integer,Byval y As Integer)Declare Sub client to screen Lib " User "(Byval hwnd As Integer,Ip As point API)Declare function get parent Lib " User "(Byval hwnd As Integer)As Integer
然后创建一个新的子例程(alt+n → n →键入子例程名称MoveCursorOn),以下是代码顶+源。高度/2)/屏幕。twipsperpixel)h parent = get parent(source . hwnd)clientto screen h parent ptSetCursorPos pt . x pt . yend Sub
这个子程序很容易使用。例如,如果我们想将鼠标移到按钮Command1上,我们可以使用语句Move Cursor On Command1
。您将看到鼠标箭头指向按钮Command1。
需要注意的是,千万不要滥用这个子程序。让鼠标满屏乱飞,我们的用户会觉得对应用失去了控制,这违背了我们的初衷。
在一个有多个输入框的窗口中(这在数据库应用中很典型),当用户完成第一个输入框的输入时,总是爱?添加回车,希望输入焦点落在下一个输入框中(DOS下大多数应用都是这样),但往往事与愿违。这个回车触发了一个具有默认特性的按钮,结果,当前窗口要么被关闭,要么弹出另一个窗口。用户睁大眼睛看着屏幕,“咦?!我做了什么?”这是Windows新用户经常遇到的情况。
其实很容易解决。只需在输入框的KeyPress事件中添加以下代码:
if keyascii = 13 then keyascii = 0 sendkeys " { TAB } " end if
这样,当用户在这个输入框中键入Enter时,就像键入TAB键一样,焦点移到下一个控件。但需要注意的是,该方法不适用于启用了multiline函数的TextBox,即TextBox的MultiLine属性设置为True时,因为Enter键起到了换行的作用。
MDI(MultipleDocumentInterface)窗体定义如下:“MDI窗体作为程序的后台窗口,包含MDIChild属性为True的窗体”。在一个VB程序中,最多可以有一个MDI父窗体,也可以有多个MDI子窗体。创建MDI父窗体的方法是在VB的文件菜单中选择“NewMDIForm”。
MDI程序运行时,如果子窗口有菜单,当子窗口被激活时,子窗口的菜单会自动替换父窗口的菜单;当子窗口最小化时,子窗口的图标将出现在MDI父窗口中。
随着Windows通用图形界面的出现,计算机用户无需专门学习即可使用各种Windows软件;不仅如此,它还是程序员在设计Windows程序的界面时必须遵循的标准,大大减轻了程序员的负担,使他们能够专注于解决和实现问题。
Visual Basic的出现进一步简化了Windows程序界面的设计,只需要少量代码就可以实现标准Windows应用程序的界面。但是,如果不了解Windows程序界面设计的原理,或者不熟悉VB下界面编程的技巧,就很难设计和实现一个既符合通用标准又有自己特色的界面。界面设计的原则界面设计有一般的原则,最重要的有:
界面要一致。一致性原则是界面设计中最容易违背的,也是最容易修改和避免的。例如,在菜单和在线帮助中必须使用相同的术语;对话框必须有相同的样式。
常用操作应该有快捷方式。常用操作经常使用,因此应减少操作序列的长度。比如设置打开、保存、另存为等文件常用操作的快捷方式。常用操作的快捷方式不仅会提高用户的工作效率,在功能实现上也会使界面简洁高效。
提供简单的错误处理。系统应具有错误处理功能。当错误发生时,系统应该能够检测到错误,并提供简单易懂的错误处理功能。错误发生后系统的状态没有改变,或者系统应该提供错误恢复的指导。
提供信息反馈。应对操作员的重要操作提供信息反馈。可能不需要对常见操作和简单操作进行反馈,但系统应对不常见的操作和重要操作提供信息反馈。
该操作是可逆的。操作应该是可逆的。这对于没有专门知识的操作者来说是相当有用的。可逆动作可以是单一操作,也可以是相对独立的操作序列。
精心设计的在线帮助。虽然在线帮助对于熟练用户来说不是必须的,但是对于大多数不熟练的用户来说,它起着非常重要的作用。
菜单设计与编程原理
菜单设置?以下一般原则:
根据系统的功能组织菜单。
选择宽而浅的菜单树,而不是窄而深的菜单树。
根据菜单选项的含义分组;并按照一定的规则进行排序。菜单的标题应该简短明了,以关键词开头。
常用选项应设置快捷方式。结合以上原理,菜单编程有以下技巧和技巧:
菜单选项的分组
在VB中,菜单选项的分组是通过菜单栏划分水平线来实现的。向“?”添加标题属性在菜单的某个位置。菜单项,它在菜单上显示为一条水平线。很多情况下,同一个功能菜单可以根据菜单选项的功能分成几组,然后通过划分水平线来对菜单项进行分组。
常用选项快捷方式的设置
打开MenuDesignWindow,每个菜单选项都应该有对应的快捷方式列表,从列表中选择一个即可。请注意,不能以这种方式定义带有子菜单或顶层菜单的菜单的快捷键。根据Windows的界面设计原理,顶部菜单的快捷键是Alt+字母键。稍后将描述其实现方法。
对于一些常用的功能菜单项,都有既定的快捷键。比如CTRL+O用来打开文件,CRTL+S用来保存文件,CTRL+P用来打印文件等等?/p>
为菜单选项定义快捷键后,快捷键的文本表示将出现在菜单选项的后面。
菜单选项的启用和禁用、可见和隐藏属性可以用来表示菜单选项的一些特殊功能。当某个选项所代表的功能由于某种原因无法实现时,应该禁止选择。菜单的启用和禁用是通过改变选项的Enabled属性来实现的。例如,假设菜单选项名为nmuName,禁用该选项可通过如下方式实现:
mnunname . enabled = false
同样,隐藏选项可通过
mnunname . visible = false
实现,而使隐藏的选项再次可见可通过[/br]
实现隐藏和恢复菜单项的可见性在动态菜单的实现中经常使用。
菜单项的动态加载
菜单项的动态加载是指菜单项的数量不是固定的,可以在需要的时候动态加载。最简单的例子是文件菜单中最近打开的文件列表。在第一次打开文件之前,这个列表是空,不会出现在文件菜单中;打开一个文件后,列表不再空,代表打开文件的菜单项出现在文件菜单中。
在上面的例子中,综合使用了下标属性(Index)、title属性(Caption)、visible属性(Visible)和菜单项加载方法。
具体实现过程如下:
在文件菜单中添加任意标题的菜单项,假设菜单项的Name属性为opened _ files _ list
更改菜单项open _ files _ list的visible属性使其成为open _ files _ list . visible = false
更改菜单项open _ files _ list的下标属性使其成为
open _ files _ files _ list . index = 0
在程序中控制。
假设应该显示第二个打开的文件的文件名,文件名应该存储在文件名数组opened _ file _ name中。下面的代码实现了这个功能:
load opened _ files _ list(1)
opened _ files _ Lise(1)。caption = " & 2 "+opened _ file _ name(1)
opened _ files _ list(1因为执行程序时菜单项已经加载到内存中;此外,菜单项的标题属性字符中的“&”字符具有特殊的含义。它的作用是显示属性字符串而不显示“&”本身,而紧跟“&”后面的字符在显示时加下划线,成为热键。
如果不再需要下标不为0的菜单项,为了减少对内存资源的占用,可以通过Unload方法将其从内存中卸载;类似地,不能用Unload卸载下标为0的菜单项。
弹出菜单方法的实现
VB中MenuDesignWindow设计的菜单是下拉菜单。下拉菜单是用户可以随时在顶部菜单栏选择然后拉出的菜单,而弹出菜单是在程序界面的某个区域点击鼠标按钮后出现的菜单。在某些情况下,弹出菜单会使系统功能的实现更简洁高效,更易于使用。
Widnows程序的弹出菜单通常在用户在程序桌面点击鼠标按钮时出现。弹出菜单主要用于实现系统的附加或增强功能。弹出菜单的内容可以随着鼠标按钮被单击的位置而改变。由于弹出菜单覆盖了屏幕的一部分,所以菜单中的文本应该尽量缩短。
在VB中,利用下拉菜单设计技术和PopupMenu方法实现弹出菜单。具体方法是:
在MenuDesignWindow中设计相应表单的弹出菜单。注意,要弹出的菜单必须至少有一个子菜单;因此,该菜单不能有快捷键,并且Checked属性必须为False。然后将弹出菜单的Visible属性更改为False。
将下面的代码添加到设计有弹出菜单的窗体的Form_Click中(假设弹出菜单的Name属性为mnu example):
Subform _ Click()
popupmenumnuexample
end sub
如果要求只能通过按下鼠标左键或右键来激活菜单,则必须将下面的代码添加到Form_MouseDown中:
subform _ mousedown (button为整数,shift为整数 yas single)
if button = 2 then button = 2表示鼠标右键
popupmenumnue example
endif
弹出菜单的完整语法是:
[form。 ]弹出菜单menuname [flags [,x [,y]。Flags有两组值。第一组值用于控制菜单的显示方式,包括popup menu _ leftalignpopup menu _ center align和popup menu _ rightalign,分别代表以X为左边界、X为中心、X为右边界的显示方式,X为左边界为默认方式;另一组值用于控制菜单项的选择模式,包括POPUPMENU_LEFTBUTTON和POPUPMENU_RIGHTBUTTON,分别表示可以使用左键选择和左/右键选择,左键选择是默认模式。标志的值是通过对上述两组值进行“或”运算得到的。比如需要左对齐显示,选择了左键,应该有:
flags = popup menu _ leftalignorpumpmenu _ left button
x和y用来定义菜单的弹出位置,默认是鼠标点中的位置。
菜单项的其他属性
你必须学会使用&用ALT+字母键激活顶层菜单,或者在菜单激活后用字母键激活菜单项。&用于菜单项的标题属性(标题)。其用法和功能与C语言编写的Windows程序中的用法和功能相同。
有些时候,如果希望顶层菜单之间的间隔更大,或者在菜单栏的右端出现顶层菜单,就需要使用title属性为空的菜单。如果一个菜单的标题是由多个空单元格组成的,那么这个菜单会占据菜单栏上空单元格个数对应的空空间,后面的菜单也会依次向后移动;如果这个菜单的Visible属性为False,就好像它不存在一样。
窗口设计的原则和实例
下面是浮动窗口技术的一个实例。为了吸引用户的注意,或者保证包含重要信息的窗口不被其他窗口覆盖,就需要使用浮动窗口技术来构建一个“最顶层”的窗口。具体方法如下:
(1)在VB程序中添加以下语句:
DeclareFunctionSetwindowposlib " user "(byvalh %,byvalhb%,byvalx%,byvaly%,by
valcx%,byvalcy%,Byvalf %)as integer
GlobalConstSWP _ no move = 2
GlobalConstSWP _ no size = 1
GlobalConstHWND _ MOST =?1
GlobalConstHWND_NOMOST=?2
Global const flags = SWP _ nomoveorswp _ no size
(2)假设窗体frmExample总是设置为前窗口,只需在frmExample窗体的Form_Load
过程中添加下面的代码:
dim Success %
Success = SetWindowPos(frm example . hwnd,hwnd _ most,0,0,0,0,0,flags)
如果要执行下面的代码就可以执行
在MDI程序中,一个窗口是其他所有窗口的父窗口,每个子窗口执行相对独立的功能,就像几个独立工具的组合。在这方面,Windows的MSWord和FileManager就是例子。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » VisualBasic界面设计大观

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情