• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

Visual Basic下工具条的制作

发布: 2007-6-21 21:57 | 作者:   | 来源:   | 查看: 15次 | 进入软件测试论坛讨论

领测软件测试网

   
  Visual Basic下工具条的制作

时间:2000/10/12 18:09 作者:况正谦

  工具条(toolbar)是windows环境下应用程序常用的界面元素。把菜单中常用的命令做成按钮安排在工具条中,配上适当的图标符号和文本提示,确实极大地方便了用户。以microsoft word 7.0 for windows95的工具条为例,其中的内容和功能非常丰富。word7.0工具条中不仅包含与文件操作等有关的常规图标按钮,还有设置字体字号等等的组合框(combobox)。按钮之间可以分组,例如设置段落对齐方式的一组按钮,同组中的按钮每次只允许有一个被按下,按下一个按钮时,同组中其它按钮自动弹起。另外,word7.0的工具条还有用户裁剪(customize)功能。用户在工具条上双击鼠标时,工具条弹出一个裁剪对话框,用户可以隐藏、显示以及重新排列工具条中的按钮。如果在我们自己开发的软件界面中加上这样的工具条,我们的软件就可以与商业软件相媲美了。

  在诸多windows应用程序开发平台中,microsoft visual basic以易学易用、功能强大的优点特出独立,成为开发windows应用程序的首选平台之一。在vb4.0及以前的版本中,开发象word7.0中的工具条还是颇费辛苦的。一般思路是在窗体(form)中安放一个图片框(picturebox)作为容器(container),再往其中加入图象(image)控件,用图象控件载入图标来模拟按钮。对多个按钮的控制要分别完成,管理较为复杂。在vb5.0中,系统提供了一个专门的工具条控件toolbar。用toolbar来实现类似word7.0中的工具条非常方便。

工具条控件toolbar简介

1.在工具箱中加入toolbar

工具条控件toolbar不在vb5.0工具箱(toolbox)的常规标准控件之列,因此在首次安装vb5.0后,工具箱中并没有toolbar。在工具箱中加入toolbar要通过project菜单中的components命令,该命令弹出一个选择安装组件的窗口。在components窗口的controls组中找到“microsoft windows common controls5.0”项,单击标记该项,然后单击“确定”按钮,toolbar和另外一些控件就加入工具箱了。

2.toolbar的功能

toolbar中可以加入按钮,每个按钮都可以载入自己的图象、设置标题(caption)。还可以为每个按钮设置简短的提示字符串,程序运行时,当鼠标指针移到按钮上时,在指针附近会自动浮出提示字符串。在程序运行时,可以随时增加或删除按钮。toolbar为其中的按钮提供了分组功能,用户只需简单地设置一个按钮的style属性就能实现按钮之间的分组。toolbar同时还是一个容器类控件,可以在其中加入组合框等其它控件。toolbar的allowcustomize属性允许用户在程序运行时双击工具条对其中的内容进行裁剪。根据这些功能,用户就可以轻而易举地在自己开发的应用程序中加入类似word7.0风格的工具条了。

toolbar的制作

toolbar的制作包括以下步骤:在窗体中加入toolbar控件;在toolbar中加入按钮;为按钮载入图象并设置其它属性。

1.在窗体中加入toolbar控件

双击工具箱中的toolbar,toolbar就自动加入窗体并放置在窗体客户区的顶端。如果要把toolbar放置在其它位置,可以在属性窗口中改变toolbar的align属性。toolbar的align属性中可供选择的有5个值:

0-vbalignnone,不对齐

1-vbaligntop,对齐窗口客户区顶端

2-vbalignbottom,对齐窗口客户区底端

3-vbalignleft,对齐窗口客户区左边

4-vbalignright,对齐窗口客户区右边

2.在toolbar中加入按钮

用鼠标右键单击toolbar,会弹出toolbar的属性菜单。单击菜单的最后一项“properties”,会弹出toolbar的属性页(property pages)窗口。在属性页窗口中可以设置控件的一些非常规属性。

在toolbar属性页中选buttons组,其中的“insertbutton”和“removebutton”两个按钮分别用于在toolbar中加入和删除按钮。toolbar控件的所有按钮构成一个按钮集合(collection),名为buttons。在toolbar中加入和删除按钮实际上是对toolbar的buttons集合进行加入和删除元素操作。对于toolbar中各个按钮的访问,也是通过buttons集合进行的。用“insertbutton”加入按钮后,可以在toolbar属性页buttons中设置新加入的按钮的属性。这些属性包括:索引(index)、标题(caption)、描述信息(description)、关键字(key)、初态(value)、模式(style)、宽度(width)、提示信息(tooltiptext)等。

(1)index和key

toolbar中的按钮是通过集合buttons来访问的。集合中每个按钮都有唯一与之对应的标识,index和key就是与按钮一一对应的标识。index是整数类型的,类似于数组的下标。key是字符串类型的类似于对象的名字,但它与名字不同的是引用时必须加双引号,并且它中间可以包含任意的字符。按钮的key属性是可选的,可以为空。访问按钮时可以引用index和key二者之一。例如,在名为toolbar1的toolbar中加入按钮,其index为1,key设置为“1stbutton”。在程序中可以通过以下两种方式之一访问该按钮:

toolbar1.buttons(1)



toolbar1.buttons("1st button")

(2)caption

caption属性对应按钮上显示的文本,与普通按钮的caption属性相同。

(3)tooltiptext和description

tooltiptext和description都是字符串类型,用于设置按钮的提示文本和描述信息。设置了tooltiptext后,程序启动运行后,当用户把鼠标指针移到按钮上时,tooltiptext对应的文本字符串自动浮出。该属性用于在程序运行时提示用户按钮的功能。程序启动运行后,用户双击工具条对其中的内容进行裁剪时,对话窗中每个按钮旁边显示的是按钮的description属性。

(4)style

style属性设置按钮的模式,不同模式的按钮具有不同的风格和作用。可供选择的style属性有以下5种:

0-tbrdefault,一般按钮

1-tbrcheck,开关按钮

2-tbrbuttongroup,编组按钮

3-tbrseparator,分隔按钮

4-tbrplaceholder,占位按钮

一般按钮与普通的按钮控件在操作风格上基本相同。开关按钮具有二值状态:按下和放开。编组按钮用于实现按钮之间的分组,相邻的编组按钮都属于同一组。编组按钮同时也是开关按钮,同组内至多只允许一个按钮处于按下状态。分隔按钮在toolbar中并不显示,而是把它左右的按钮分隔开来。toolbar中的按钮本来是紧挨着排列的,使用分隔按钮可以让同类或同组的按钮并列排放而与邻近的组分开。占位按钮在toolbar中也不显示,它仅仅起到占位的作用。在占位按钮处可以安放其它控件诸如组合框之类。占位按钮是唯一可以设置宽度(width)属性的按钮。

(5)value

value属性设置按钮的按下和放开状态。该属性一般用于设置开关按钮和编组按钮的初态。

(6)width

在属性页的buttons组中可以看到,width属性后有一个placeholder的附加说明。只有当按钮的style设置为placeholder时,该属性才能被设置,其它情况下该属性被禁止。

3.为按钮载入图象

工具条按钮的一个突出特点是包含形象的图象,用以提示按钮的功能。在toolbar中加入所需的按钮后,就可以为每个按钮载入图象了。toolbar按钮与普通的image和picturebox不同,它们没有picture属性。要给toolbar按钮载入图象需要借助于另一个控件imagelist。

imagelist是在“microsoft windows common controls5.0”中与toolbar一并提供的控件。该控件不单独使用,而是专门为其它控件提供图象库。toolbar中按钮的图象就要从imagelist的图象库中提取。

为toolbar按钮载入图象的方法是:首先在toolbar所在的窗体中加入imagelist控件,其次在imagelist中加入图象,然后建立toolbar和imagelist的关联关系,最后从imagelist的图象库中选择图象载入toolbar的按钮。

(1)在imagelist中加入图象

与toolbar控件类似,鼠标右键单击窗体中的imagelist控件时,会弹出其属性菜单。选菜单的最后一项“properties”会弹出imagelist的属性页窗口。在属性页窗口中选images组,在这里可以为imagelist的图象库中加入图象,并为每个图象设置关键字属性。

单击“insertpicture”按钮可以在图象库中插入图片。系统弹出一个选择图片(selectpicture)的窗口,从该窗口中可以选定一个或多个图象文件。单击“打开”按钮,选定的图片就插入图象库了。imagelist允许插入位图文件(.bmp)和图标(.ico)文件。

(2)建立toolbar和imagelist的关联关系

打开toolbar的属性页窗口,在general组中有一个标题为imagelist的下拉式列表框。单击打开该列表框,其中列出了本窗体中所有的imagelist控件。单击选定一个imagelist控件,toolbar就与该imagelist建立了关联关系。

(3)为toolbar按钮载入图象

建立好toolbar和imagelist的关联关系后,toolbar属性页窗口的buttons组中image项就从禁止状态变为有效了。在image项的文本框中输入imagelist图象库里某个图片的index值,该图片就被载入该按钮了。

toolbar的常用属性和方法

设置好toolbar之后,有必要对其常用的属性和方法作一了解,以便在程序中对它进行控制。toolbar与其它控件类似的常用属性在此不作赘述。

1.常用属性

(1)imagelist

c该属性设置与toolbar相关联的imagelist对象。

(2)allowcustomize

该属性设置是否允许用户在程序运行时对toolbar的内容进行裁剪。该属性的缺省值是true。

(3)showtips

该属性决定程序运行过程中,当鼠标指针移到toolbar按钮上时,是否浮出该按钮的tooltiptext文本提示。该属性的缺省值是true。

(4)tooltiptext

该属性设置toolbar自己的文本提示字符串。toolbar的每个按钮可以有自己的tooltiptext,同时toolbar本身也可以有自己的tooltiptext。程序运行过程中,当鼠标指针移到toolbar按钮上时,如果toolbar和按钮都设置了tooltiptext,则两个提示字符串都会浮出。

2.常用方法

对toolbar的控制主要是针对其中的按钮,toolbar中的按钮是作为一个名为buttons的集合对象供程序访问的。buttons的常用方法包括增加一个按钮(add)、删除一个按钮(remove)和删除所有按钮(clear)。

(1)add

add方法的语法为:

toolbar控件名.buttons.add(index,key,caption,style,image)

整型参数index指定新增按钮的索引值,该索引值也决定了按钮在toolbar中的位置。index参数可以省略(注意,省略index参数时其后的逗号要照写),缺省情况下新增按钮加到buttons集合的最后。

字符串型参数key指定新增按钮的关键字,该参数可以省略。

字符串型参数caption指定新增按钮的标题,该参数可以省略。

整型参数style指定新增按钮的style属性,其合法取值有5个,参见前面style属性的介绍。该参数可以省略,缺省时自动取0(tbrdefault)。

参数image指定给新增按钮载入的图象,图象必须是与该toolbar相关联的imagelist控件图象库中的一个。image参数可以是一个整数,对应imagelist图象库中某个图片的index值,也可以是一个字符串,对应图片的关键字key。

(2)remove

remove方法的语法为:

toolbar控件名.buttons.remove按钮的index值



toolbar控件名.buttons.remove按钮的key字符串

(3)clear

clear方法的语法为:

toolbar控件名.buttons.clear

在程序中生成toolbar

以上从设计阶段(designtime)和程序角度介绍了toolbar的生成和使用。下面我们结合实例来看看如何为自己的应用程序添加功能强大、方便用户的工具条。

----下面的例子中,窗口工具条内有两个分别代表打开文件和文件存盘的按钮,另外还有一个设置窗口客户区颜色的组合框。为免去烦琐地介绍工具条的设置过程,在窗体制作时仅仅加入一个toolbar控件和一个imagelist控件,另外在toolbar中加入一个组合框combobox。其它所有与toolbar的设置和控制有关的操作都在程序代码中实现,包括为imagelist1加入图片库、建立toolbar1和imagelist1的关联关系、在toolbar1中加入按钮并为每个按钮设置属性、对combo1进行初始化等等。下面给出窗体form1的程序代码。

private sub form_load()

’ create object variable for the imagelist.

dim imgx as listimage

’ load pictures into the imagelist control.

set imgx = imagelist1.listimages. _

add(, "open", loadpicture("graphicsitmaps lbr_w95open.bmp"))

set imgx = imagelist1.listimages. _

add(, "save", loadpicture("graphicsitmaps lbr_w95save.bmp"))

toolbar1.imagelist = imagelist1

’ create object variable for the toolbar.

dim btnx as button

’ add button objects to buttons collection using the

’ add method. after creating each button, set both

’ description and tooltiptext properties.

toolbar1.buttons.add , , , tbrseparator

set btnx = toolbar1.buttons.add(, "open", , tbrdefault, "open")

btnx.tooltiptext = "open file"

btnx.description = btnx.tooltiptext

set btnx = toolbar1.buttons.add(, "save", , tbrdefault, "save")

btnx.tooltiptext = "save file"

btnx.description = btnx.tooltiptext

set btnx = toolbar1.buttons.add(, , , tbrseparator)

’ the next button has the placeholder style. a

’ combobox control will be placed on top of this button.

set btnx = toolbar1.buttons.add(, "combo1", , tbrplaceholder)

btnx.width = 1500 ’ placeholder width to accommodate a combobox.

show ’ show form to continue configuring combobox.

’ configure combobox control to be at same location as the

’ button object with the placeholder style (key = "combo1").

with combo1

.width = toolbar1.buttons("combo1").width

.top = toolbar1.buttons("combo1").top

.left = toolbar1.buttons("combo1").left

.additem "black" ’ add colors for text.

.additem "blue"

.additem "red"

.listindex = 0

end with

end sub

private sub form_resize()

’ configure combobox control.

with combo1

.width = toolbar1.buttons("combo1").width

.top = toolbar1.buttons("combo1").top

.left = toolbar1.buttons("combo1").left

end with

end sub

private sub toolbar1_buttonclick(byval button as button)

’ use the key property with the selectcase statement to specify

’ an action.

select case button.key

case is = "open" ’ open file.

msgbox "add code to open file here!"

case is = "save" ’ save file.

msgbox "add code to save file here!"

end select

end sub

private sub combo1_click()

’ change backcolor of form using the combobox.

select case combo1.listindex

case 0

form1.backcolor = vbblack

case 1

form1.backcolor = vbblue

case 2

form1.backcolor = vbred

end select

end sub

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网