转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> VB.NET程序 >> 正文
vb中的界面设计原则和编程技巧         ★★★★

vb中的界面设计原则和编程技巧

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1377 更新时间:2009/4/23 14:58:01
  在VB里,MDI(Multiple Document Interface,多窗口程序)窗体是这样定义的:“MDI窗体作为一个程序的后台窗口,包含着MDIChild属性为True的窗体”。在一个VB程序中,至多只能存在一个MDI父窗体,可以有多个MDI子窗体;建立一个MDI父窗体的方法是在VB的File菜单里选择“New MDI Form”。

  在MDI程序运行时,如果子窗口具有菜单,那么当子窗口被激活时,子窗口的菜单就会自动替换父窗口菜单;当子窗口被最小化时,在MDI父窗口里就会出现子窗口的图标。

  Windows的通用图形界面的出现,使计算机用户不必通过专门的学习就可以得心应手地使用各种Windows的软件;不仅如此,它还是程序设计者在设计Windows程序的界面时所必须遵循的标准,这在很大程度上减轻了程序设计者的负担,使他们能够把主要精力放在问题的求解和实现上。

  Visual Basic的出现,更加简化了Windows程序界面的设计工作,只需要极少量的代码,就能实现标准Windows应用程序的界面。但是,如果不了解Windows程序界面设计的原则,或者不熟悉VB下界面编程的技巧,就难以设计和实现既符合一般标准又具有特色的界面。界面设计的原则界面设计具有一般性的原则,最为重要的有:

  1.界面要具有一致性。一致性原则在界面设计中最容易被违反,同时也最容易修改和避免。例如,在菜单和联机帮助中必须使用相同的术语;对话框必须具有相同的风格。

  2.常用操作要有捷径。常用操作的使用频度大,应该减少操作序列的长度。例如,为文件的常用操作如打开、存盘、另存等设置快捷键。使常用操作具有捷径,不仅会提高用户的工作效率,还使得界面在功能实现上简洁和高效。

  3.提供简单的错误处理。系统要有错误处理的功能。在出现错误时,系统应该能检测出错误,并且提供简单和容易理解的错误处理的功能。错误出现后系统的状态不发生变化,或者系统要提供错误恢复的指导。

  4.提供信息反馈。对操作人员的重要操作要有信息反馈。对常用操作和简单操作的反馈可以不作要求,但是对不常用操作和至关重要的操作,系统应该提供信息的反馈。

  5.操作可逆。操作应该可逆。这对于不具备专门的知识的操作人员相当有用。可逆的动作可以是单个的操作,或是者一个相对独立的操作序列。

  6.设计良好的联机帮助。虽然对于熟练用户来说,联机帮助并非必不可少,但是对于大多数不熟练用户来说,联机帮助具有非常重要的作用。  菜单设计的原则和编程

  菜单设计有如下的一般性原则:

  按照系统的功能来组织菜单。

  要选用广而浅的菜单树,而不是窄而深的菜单树。

  根据菜单选项的含义进行分组;并且按一定的规则排序。菜单选项的标题要力求简短、含义明确,并且最好以关键词开始。

  常用选项要设置快捷键。结合以上的原则,菜单编程有以下几方面的技术和技巧:

  菜单选项的分组

  在VB中,菜单选项的分组是通过菜单栏分隔横线实现的。在菜单的一定位置增加一个Caption属性为“?”的菜单项,它在菜单上就表现为一条横线。在许多情况下,同一个功能菜单下又可以按照菜单选项的功能分为几组,这时就可以用分隔横线来实现菜单项的分组。

  常用选项快捷键的设置

  打开菜单设计窗口(Menu Design Window),应对于每个菜单选项有相应的快捷键(Shortcut)列表,在该表中选择一个即可。需要注意的是,具有子菜单的菜单或者顶层菜单的快捷键不能这样定义。按照Windows的界面设计原则,顶层菜单的快捷键的形式是Alt+字母键。它的实现方法在后文另叙。

  对于一些常用的功能菜单项,有约定俗成的快捷键。

  例如,文件打开用CTRL+O,文件存盘用CRTL+S,打印用CTRL+P,等等。

  为菜单选项定义好快捷键之后,菜单上该选项的后面就出现了快捷键的文字表示。

  菜单选项的使能与禁止、可见与隐藏为了表示菜单选项的一些特殊功能,可能要用到菜单选项的使能与禁止、可见与隐藏属性。当因为某种原因使得某个选项所代表的功能不能被实现时,就应该禁止该选项被选中。菜单选项的使能与禁止是通过改变改选项的Enabled属性实现的。举例来说,假设菜单选项名为nmuName,则禁止该选项可以如下实现:

  mnuName.Enabled=False 同理,隐藏一个选项可以用mnuName.Visible=False 来实现,而使一个隐藏的选项恢复可见则用mnuName.Visible=True 实现。

  菜单项的隐藏与恢复可见常常用在动态菜单的实现中。

  菜单项的动态装入菜单项的动态装入是指菜单项的个数不固定,并且能够在需要时动态地装入。最简单的例子就是文件菜单中最近打开的文件的列表。在第一次打开文件之前,该列表是空的,并且不在文件菜单中出现;打开一个文件后,该列表不再是空的,并且文件菜单中出现代表被打开文件的菜单项。

  在上面的例子里,就综合运用了菜单项的下标属性(Index)、标题属性(Caption)、可见属性(Visible)以及菜单项的装入方法(Load Method)。

  具体的实现过程如下:

  在文件菜单里增加一个菜单项,标题任意,并假设菜单项的Name属性是opened_files_list;

  更改菜单项opened_files_list的可见属性,使opened_files_list.Visible=False

  更改菜单项opened_files_list的下标属性,使opened_files_files_list.Index=0

  在程序中控制菜单项opened_files_list的动态装入。

  假设要显示打开过的第二文件的文件名,并且该文件名存放在一个文件名数组opened_file_ name里。以下的代码就实现了这一功能:

  Load opened_files_list(1) opened_files_lise(1).Caption="&2"+opened_file_name(1) opened_files_list(1).Visible=True

  需要注意的是,对于下标为0的菜单项,不能用Load方法。因为在程序执行时,该菜单项就已经被装入到内存里了;另外,在菜单项的标题属性字符里的“&”字符具有特殊的含义,它的作用是在显示该属性字符串的同时,并不显示“&”本身,而紧跟“&”的字符在显示时具有下划线,并且该字符成为热键。

  如果下标不为0的菜单项不再需要,为了减少对内存资源的占用,可以用Unload方法把它从内存卸出;同样地,不能用Unload卸出下标为0的菜单项。

  弹出式菜单的实现(PopupMenu Method)

  VB中在菜单设计窗口(Menu Design Window)中设计的菜单是下拉式菜单。下拉式菜单是用户在任何时候都可以在顶端菜单条上选择后拉出的菜单,而弹出式菜单则是在程序界面的一定区域内点按鼠标键后出现的菜单。在某些情况下,弹出式菜单会使系统功能的实现更加简洁和高效,使用起来更加得心应手。

  Widnows程序的弹出式菜单一般是当用户在程序的桌面上点按鼠标键时出现的。弹出式菜单多用于实现系统的附加或增强功能。弹出式菜单的内容,可以随点按鼠标键的位置不同而变化。由于弹出的菜单要覆盖屏幕的一部分,所以应尽量缩短菜单里的文字。

  在VB中,弹出式菜单的实现要用到下拉式菜单设计的技术和PopupMenu方法。具体的做法是:

  在菜单设计窗口(Menu Design Window)里设计好相应窗体的弹出式菜单。要注意的是,要弹出的菜单必须至少有一个子菜单;因而这个菜单不能有快捷键,并且Checked属性必须是False。再把弹出式菜单的Visible属性改为False。

  在具有设计好的弹出式菜单的窗体的Form_Click中加入以下代码(假设弹出式菜单的Name属性是mnuExample):

  Sub Form_Click() PopupMenu mnuExample End Sub

  如果要求只有按下鼠标左键或者右键才能激活菜单,就必须在Form_MouseDown里加入如下代码:

  Sub Form_MouseDown(Button As Integer,Shift As Integer,x As Single,y As Single) If Button=2 then Button=2表示鼠标右键PopupMenu mnuExample End If PopupMenu的完整句法是:

  [Form.]PopupMenu menuname[flags[,x[,y]]]

  改变flags的值可以控制弹出式菜单的表现形式。flags 有两组值。第一组值用来控制菜单的显示方式,包括POPUPMENU_LEFTALIGNPOPUPMENU_CENTERALIGN,POPUPMENU_RIGHTALIGN ,分别表示以x为左边界,以x为中心和以x为右边界的显示方式,并且以x为左边界是缺省的方式;另外一组值用来控制菜单项的选中方式,包括POPUPMENU_LEFTBUTTON 和POPUPMENU_RIGHTBUTTON,分别表示左键选中和左/右键选中均可,并且左键选中是缺省的方式。flags的值由上面的两组值经过OR运算得出。例如,要求左对齐显示并且左键选中为准,则应有:

  flags=POPUPMENU_LEFTALIGN OR POPUPMENU_LEFTBUTTON

  x和y用来定义菜单弹出的位置、缺省是鼠标点中的位置。

  菜单项的其他属性

  用ALT+字母键激活顶层菜单,或者在菜单激活后用字母键激活一个菜单项,必须学会使用&。&用在菜单项的标题属性(Caption)里。它的用法和作用与在用C语言编制的Windows程序中的用法和作用相同。

  有时希望顶层菜单之间的间隔大一些,或者某个顶层菜单出现在菜单条的最右端,这时就要用到标题属性是空格的菜单。如果一个菜单的标题是由多个空格组成的,那么这个菜单在菜单条上就占用跟空格的个数相应的空间,并且它后面的菜单也顺序地后移;如果这个菜单的Visible属性是False,那么它就跟不存在一样。

  窗口设计的原则和举例

  下面是一个浮动窗口技术的例子。为了引起用户的注意,或者必须保证含有重要信息的窗口不被其他窗口覆盖,就要用到浮动窗口技术,建立一个“总在最前面”(TopMost) 的窗口。具体的做法是:

  (1)在VB程序中加入如下的声明:

  Declare Function SetWindowPos Lib"user"(Byval h%,Byval hb%,Byval x%,Byval y%,By val cx%,Byval cy%,Byval f%)As Integer Global Const SWP_NOMOVE=2 Global Const SWP_NOSIZE=1 Global Const HWND_TOPMOST=?1 Global Const HWND_NOTOPMOST=?2 Global Const FLAGS=SWP_NOMOVE Or SWP_NOSIZE

  (2)假设要把窗体frmExample设置成总在最前面的窗口,只要在frmExample窗体的Form_Load

  过程里加入以下代码:

  Dim success%

  success=SetWindowPos(frmExample.hWnd,HWND_TOPMOST,0,0,0,0,FLAGS)

  如果要取消总在最前面的特性,则可以执行如下的代码:

  success=SetWindowPos(frmExample.hWnd,HWND_NOTOPMOST,0,0,0,0,FLAGS)

  success不等于0表示SetWindowPos执行成功。

  在MDI程序里,有一个窗口是所有其他窗口的父窗口,各个子窗口完成相对独立的功能,就像是多个独立的工具组合起来一样。在这方面,MS Word和Windows的File Manager是最好的例子。?国科技大学计算机系(230027)谢海永赵保华

  在VB里,MDI(Multiple Document Interface,多窗口程序)窗体是这样定义的:“MDI窗体作为一个程序的后台窗口,包含着MDIChild属性为True的窗体”。在一个VB程序中,至多只能存在一个MDI父窗体,可以有多个MDI子窗体;建立一个MDI父窗体的方法是在VB的File菜单里选择“New MDI Form”。

  在MDI程序运行时,如果子窗口具有菜单,那么当子窗口被激活时,子窗口的菜单就会自动替换父窗口菜单;当子窗口被最小化时,在MDI父窗口里就会出现子窗口的图标。

  Windows的通用图形界面的出现,使计算机用户不必通过专门的学习就可以得心应手地使用各种Windows的软件;不仅如此,它还是程序设计者在设计Windows程序的界面时所必须遵循的标准,这在很大程度上减轻了程序设计者的负担,使他们能够把主要精力放在问题的求解和实现上。

  Visual Basic的出现,更加简化了Windows程序界面的设计工作,只需要极少量的代码,就能实现标准Windows应用程序的界面。但是,如果不了解Windows程序界面设计的原则,或者不熟悉VB下界面编程的技巧,就难以设计和实现既符合一般标准又具有特色的界面。界面设计的原则界面设计具有一般性的原则,最为重要的有:

  1.界面要具有一致性。一致性原则在界面设计中最容易被违反,同时也最容易修改和避免。例如,在菜单和联机帮助中必须使用相同的术语;对话框必须具有相同的风格。

  2.常用操作要有捷径。常用操作的使用频度大,应该减少操作序列的长度。例如,为文件的常用操作如打开、存盘、另存等设置快捷键。使常用操作具有捷径,不仅会提高用户的工作效率,还使得界面在功能实现上简洁和高效。

  3.提供简单的错误处理。系统要有错误处理的功能。在出现错误时,系统应该能检测出错误,并且提供简单和容易理解的错误处理的功能。错误出现后系统的状态不发生变化,或者系统要提供错误恢复的指导。

  4.提供信息反馈。对操作人员的重要操作要有信息反馈。对常用操作和简单操作的反馈可以不作要求,但是对不常用操作和至关重要的操作,系统应该提供信息的反馈。

  5.操作可逆。操作应该可逆。这对于不具备专门的知识的操作人员相当有用。可逆的动作可以是单个的操作,或是者一个相对独立的操作序列。

  6.设计良好的联机帮助。虽然对于熟练用户来说,联机帮助并非必不可少,但是对于大多数不熟练用户来说,联机帮助具有非常重要的作用。

  菜单设计的原则和编程

  菜单设计有如下的一般性原则:

  按照系统的功能来组织菜单。

  要选用广而浅的菜单树,而不是窄而深的菜单树。

  根据菜单选项的含义进行分组;并且按一定的规则排序。菜单选项的标题要力求简短、含义明确,并且最好以关键词开始。

  常用选项要设置快捷键。结合以上的原则,菜单编程有以下几方面的技术和技巧:

  菜单选项的分组

  在VB中,菜单选项的分组是通过菜单栏分隔横线实现的。在菜单的一定位置增加一个Caption属性为“?”的菜单项,它在菜单上就表现为一条横线。在许多情况下,同一个功能菜单下又可以按照菜单选项的功能分为几组,这时就可以用分隔横线来实现菜单项的分组。

  常用选项快捷键的设置

  打开菜单设计窗口(Menu Design Window),应对于每个菜单选项有相应的快捷键(Shortcut)列表,在该表中选择一个即可。需要注意的是,具有子菜单的菜单或者顶层菜单的快捷键不能这样定义。按照Windows的界面设计原则,顶层菜单的快捷键的形式是Alt+字母键。它的实现方法在后文另叙。

  对于一些常用的功能菜单项,有约定俗成的快捷键。

  例如,文件打开用CTRL+O,文件存盘用CRTL+S,打印用CTRL+P,等等。

  为菜单选项定义好快捷键之后,菜单上该选项的后面就出现了快捷键的文字表示。

  菜单选项的使能与禁止、可见与隐藏为了表示菜单选项的一些特殊功能,可能要用到菜单选项的使能与禁止、可见与隐藏属性。当因为某种原因使得某个选项所代表的功能不能被实现时,就应该禁止该选项被选中。菜单选项的使能与禁止是通过改变改选项的Enabled属性实现的。举例来说,假设菜单选项名为nmuName,则禁止该选项可以如下实现:

  mnuName.Enabled=False 同理,隐藏一个选项可以用mnuName.Visible=False 来实现,而使一个隐藏的选项恢复可见则用mnuName.Visible=True 实现。

  菜单项的隐藏与恢复可见常常用在动态菜单的实现中。

  菜单项的动态装入菜单项的动态装入是指菜单项的个数不固定,并且能够在需要时动态地装入。最简单的例子就是文件菜单中最近打开的文件的列表。在第一次打开文件之前,该列表是空的,并且不在文件菜单中出现;打开一个文件后,该列表不再是空的,并且文件菜单中出现代表被打开文件的菜单项。

  在上面的例子里,就综合运用了菜单项的下标属性(Index)、标题属性(Caption)、可见属性(Visible)以及菜单项的装入方法(Load Method)。

  具体的实现过程如下:

  在文件菜单里增加一个菜单项,标题任意,并假设菜单项的Name属性是opened_files_list;

  更改菜单项opened_files_list的可见属性,使opened_files_list.Visible=False

  更改菜单项opened_files_list的下标属性,使opened_files_files_list.Index=0

  在程序中控制菜单项opened_files_list的动态装入。

  假设要显示打开过的第二文件的文件名,并且该文件名存放在一个文件名数组opened_file_ name里。以下的代码就实现了这一功能:

  Load opened_files_list(1) opened_files_lise(1).Caption="&2"+opened_file_name(1) opened_files_list(1).Visible=True

  需要注意的是,对于下标为0的菜单项,不能用Load方法。因为在程序执行时,该菜单项就已经被装入到内存里了;另外,在菜单项的标题属性字符里的“&”字符具有特殊的含义,它的作用是在显示该属性字符串的同时,并不显示“&”本身,而紧跟“&”的字符在显示时具有下划线,并且该字符成为热键。

  如果下标不为0的菜单项不再需要,为了减少对内存资源的占用,可以用Unload方法把它从内存卸出;同样地,不能用Unload卸出下标为0的菜单项。

  弹出式菜单的实现(PopupMenu Method)

  VB中在菜单设计窗口(Menu Design Window)中设计的菜单是下拉式菜单。下拉式菜单是用户在任何时候都可以在顶端菜单条上选择后拉出的菜单,而弹出式菜单则是在程序界面的一定区域内点按鼠标键后出现的菜单。在某些情况下,弹出式菜单会使系统功能的实现更加简洁和高效,使用起来更加得心应手。

  Widnows程序的弹出式菜单一般是当用户在程序的桌面上点按鼠标键时出现的。弹出式菜单多用于实现系统的附加或增强功能。弹出式菜单的内容,可以随点按鼠标键的位置不同而变化。由于弹出的菜单要覆盖屏幕的一部分,所以应尽量缩短菜单里的文字。

  在VB中,弹出式菜单的实现要用到下拉式菜单设计的技术和PopupMenu方法。具体的做法是:

  在菜单设计窗口(Menu Design Window)里设计好相应窗体的弹出式菜单。要注意的是,要弹出的菜单必须至少有一个子菜单;因而这个菜单不能有快捷键,并且Checked属性必须是False。再把弹出式菜单的Visible属性改为False。

  在具有设计好的弹出式菜单的窗体的Form_Click中加入以下代码(假设弹出式菜单的Name属性是mnuExample):

  Sub Form_Click() PopupMenu mnuExample End Sub

  如果要求只有按下鼠标左键或者右键才能激活菜单,就必须在Form_MouseDown里加入如下代码:

  Sub Form_MouseDown(Button As Integer,Shift As Integer,x As Single,y As Single) If Button=2 then Button=2表示鼠标右键PopupMenu mnuExample End If PopupMenu的完整句法是:

  [Form.]PopupMenu menuname[flags[,x[,y]]]

  改变flags的值可以控制弹出式菜单的表现形式。flags 有两组值。第一组值用来控制菜单的显示方式,包括POPUPMENU_LEFTALIGNPOPUPMENU_CENTERALIGN,POPUPMENU_RIGHT

[1] [2]  下一页


[VB.NET程序]GSM短信模块库函数,可以用VB,VC,调用简单实用  [办公软件]PowerPoint做交互课件之弃用VBA
[办公软件]VBA获取U盘、主板、CPU序列号和网卡MAC地址  [办公软件]VBA设置文件属性及加密源代码示例
[办公软件]VBA中初始化ADO连接的几种方法  [网络安全]“VB破坏者变种N”病毒摘要
[Web开发]ASP.NET上传文件到数据库VB版  [办公软件]在Excel中利用VBA实现多表单元格数据的读取与赋值…
[办公软件]使用Vba读取已关闭的Excel工作薄数据到当前工作表…  [办公软件]Excel编程基础之VBA文件操作详解
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台