现在已经把图片格式为ico的放上了,就是不知道怎样控制其中一个按钮的单击事件. 双击工具条就出现那个 Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)End Sub 怎样控制其中一个按钮的单击事件,这些按钮都有索引 为1、2、3……
toolbar的单击事件Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) Select Case Button.Key Case "save" ''''code…… Case "exit" ''''code…… End Select End Sub上面的Button.key也可以用Button.index
Select Case Button.Key
Case "save"
''''code……
Case "exit"
''''code……
End Select
End Sub上面的Button.key也可以用Button.index
在诸多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 CommonControls5.0”项,单击标记该项,然后单击“确定”按钮,Toolbar和另外一些控件就加入工具箱了。 2.Toolbar的功能 Toolbar中可以加入按钮,每个按钮都可以载入自己的图象、设置标题(Caption)。还可以为每个按钮设置简短的提示字符串,程序运行时,当鼠标指针移到按钮上时,在指针附近会自动浮出提示字符串。在程序运行时,可以随时增加或删除按钮。Toolbar为其中的按钮提供了分组功能,用户只需简单地设置一个按钮的Style属性就能实现按钮之间的分组。Toolbar同时还是一个容器类控件,可以在其中加入组合框等其它控件。Toolbar的Allow C omize属性允许用户在程序运行时双击工具条对其中的内容进行裁剪。根据这些功能,用户就可以轻而易举地在自己开发的应用程序中加入类似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的属性页(PropertyPages)窗口。在属性页窗口中可以设置控件的一些非常规属性。 在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(“1stbutton”)
(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时,该属性才能被设置,其它情况下该属性被禁止。
与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
该属性设置与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的程序代码。PrivateSubForm_Load()
’CreateobjectvariablefortheImageList.
DimimgXAsListImage’LoadpicturesintotheImageListcontrol.
SetimgX=ImageList1.ListImages._
Add(,”open”,LoadPicture(“Graphics\bitmaps\tlbr_w95\open.bmp”))
SetimgX=ImageList1.ListImages._
Add(,”save”,LoadPicture(“Graphics\bitmaps\tlbr_w95\save.bmp”))
Toolbar1.ImageList=ImageList1’CreateobjectvariablefortheToolbar.
DimbtnXAsButton’AddbuttonobjectstoButtonscollectionusingthe
’Addmethod.Aftercreatingeachbutton,setboth
’DescriptionandToolTipTextproperties.
Toolbar1.Buttons.Add,,,tbrSeparator
SetbtnX=Toolbar1.Buttons.Add(,“open”,,tbrDefault,“open”)
btnX.ToolTipText=”OpenFile”
btnX.Description=btnX.ToolTipText
SetbtnX=Toolbar1.Buttons.Add(,“save”,,tbrDefault,“save”)
btnX.ToolTipText=”SaveFile” btnX.Description=btnX.ToolTipText
SetbtnX=Toolbar1.Buttons.Add(,,,tbrSeparator)’ThenextbuttonhasthePlaceholderstyle.A
’ComboBoxcontrolwillbeplacedontopofthisbutton.
SetbtnX=Toolbar1.Buttons.Add(,“combo1”,,tbrPlaceholder)
btnX.Width=1500’Placeholderwidthtoaccommodateacombobox. Show’ShowformtocontinueconfiguringComboBox.’ConfigureComboBoxcontroltobeatsamelocationasthe
’ButtonobjectwiththePlaceHolderstyle(key=“combo1”).
WithCombo1
.Width=Toolbar1.Buttons(“combo1”).Width
.Top=Toolbar1.Buttons(”combo1”).Top
.Left=Toolbar1.Buttons(“combo1”).Left
.AddItem“Black”’Addcolorsfortext.
.AddItem“Blue”
.AddItem“Red”
.ListIndex=0
EndWith
EndSubPrivateSubForm_Resize()
’ConfigureComboBoxcontrol. WithCombo1
.Width=Toolbar1.Buttons(“combo1”).Width
.Top=Toolbar1.Buttons(“combo1”).Top
.Left=Toolbar1.Buttons(“combo1”).Left
EndWith
EndSubPrivateSubtoolbar1_ButtonClick(ByValButtonAsButton)
’UsetheKeypropertywiththeSelectCasestatementtospecify
’anaction.
SelectCaseButton.Key
CaseIs=“open”’Openfile.
MsgBox“Addcodetoopenfilehere!”
CaseIs=“save”’Savefile.
MsgBox“Addcodetosavefilehere!”
EndSelect
EndSubPrivateSubCombo1_Click()
’ChangebackcolorofformusingtheComboBox.
SelectCaseCombo1.ListIndex
Case0
Form1.BackColor=vbBlack
Case1
Form1.BackColor=vbBlue
Case2
Form1.BackColor=vbRed
EndSelect
EndSub