当前位置: 首页 > news >正文

Visual Basic 手工制作工具栏

用手工制作的工具栏,实际上是一个放置了一些工具按钮的图片框。通过设置图片框的Align属性,可以控制工具栏(图片框)在窗体中的位置,当改变窗体的大小时,Align属性值非0的图片框会自动地改变大小,以适应窗体的宽度或高度。

图片框上各种工具按钮,如命令按钮、图形方式的选项和复选框、下拉列表控件等,可以通过不同的图像来表示对应的功能,还可以设置按钮的ToolTipText属性为工具按钮添加工具提示。对于有些按钮如复选框等,需在其上放置两个图像,分别代表按钮弹起及按下时的外观。

例如,通过在窗体上添加一个图片框Picture1和文本框Text1,并在图片框中增加一个命令按钮数组Commadn1(0)Command1(2)。然后将命令按钮的Caption属性值设为空白,Style属性设为1-Graphical,Picture属性分别设为New.bmpOpen.bmp和Save.bmp。建立好的用户界面如图7.9所示。

7.9  手工制作的工具栏

由于工具按钮通常用于提供对其他(菜单)命令的快捷访问,所以一般都是在其Click事件代码中调用对应的菜单命令。

7.2.2  Toolbar控件与ImagList控件

要在工具栏中放置一系列图片按钮,最直接的方法是在窗体上添加工具栏(Toolbar)控件和图像列表(ImageList)控件。Toolbar控件和ImageList控件是ActiveX控件的一部分,在使用前必须加载“Microsoft Windows Common Controls 6.0”,然后才能使用工具箱中新添加的ImageList

控件和Toolbar

控件。

1. 创建ImageList控件

ImageList控件的作用像图像的储藏室,ImageList控件不能独立使用,它需要Toolbar控件(或ListViewTabStrip,TreeView控件等)来显示所储存的图像。ImageList控件可以包含任意大小的所有图片文件,但是图片的显示大小都相同。通常,加入该控件的第一幅图像决定了随后加入图像的显示大小。

在设计时,可以在ImageList属性页中添加图像,按照顺序将需要的图像插入到ImageList中。例如,在窗体上创建ImageList1后,用鼠标右键单击ImageList1控件,出现弹出式菜单,选择“属性”命令,或者选中窗体上的ImageList1后在属性窗口选择“(自定义)”右边的三点按钮,都可以打开“属性页”对话框。选择“图像”选项卡,在“图像”选择卡中就可以插入图片了,如图7.10所示。

ImageList控件的ListImage属性是对象的集合,每个对象可以存放图片文件。图片文件类型有.bmp.cur.ico.jpg.gif等,并可通过索引(Index)或关键字(Key)来引用每个对象。控件具有标准的集合方法:Add,RemoveClear。利用这些方法,用户可以在运行时添加、删除图像。一旦ImageList关联到其他控件,就不能再删除或插入图像了。

图7.10  ImageList控件属性页

2. 设置工具栏的属性

用鼠标双击Toolbar控件,它将加入窗体并出现在窗体的顶部(也可单击控件后在窗体中画出控件)。通过设置Toolbar1Align属性可以控制工具栏在窗体中的位置。当改变窗体的大小时,Align属性值为非0的工具栏会自动改变大小以适应窗体的宽度或高度。

用鼠标右键单击窗体上的Toolbar1,在弹出的快捷菜单中选择“属性”,将打开“属性页”对话框,如图7.11所示。“通用”选项卡中的“图像列表”属性将被用来与ImageList控件建立关联。

    

图7.11  Toolbar属性页                       图7.12  “按钮”选项卡

将属性页切换到“按钮”选项卡,创建按钮(Button)对象,如图7.12所示。其中各项功能说明如下:

(1) 插入按钮、删除按钮:在Button集合中添加或删除元素。通过Button集合可以访问工具栏中的各个按钮。

(2) 索引、关键字:工具栏中的按钮通过Button集合进行访问,集合中的每个按钮都有唯一的标识,Index属性和Key属性就是这个标识。Index为整型,Key为字符串型,访问按钮时可以引用二者之一。

(3) 标题(Caption)、描述:标题是显示在按钮上的文字;描述是按钮的说明信息。

(4) 值(Value):Value属性决定按钮的状态,0-tbrUnpressed为弹起状态,1-tbrPressed为按下状态。

(5) 样式(Style):Style属性决定按钮的行为特点。与按钮相关联的功能可能受到按钮样式的影响,如表7.4所示。

7.4  Button对象Style属性设置值

常  数

说  明

tbrDefault

0

默认值。按钮是一个规则的下压按钮,如保存文件

tbrCheck

1

复选按钮。具有下压、放开两种状态。当按钮代表的功能是某种开关类型时,可用复选样式,如加粗、倾斜、下划线等

tbrButtonGroup

2

选项按钮。当一组按钮功能相互排斥时,可使用选项按钮组样式。同一时刻只能有一个按钮被按下,但可同时处于抬起状态,如两端对齐、居中、右对齐

tbrSeparator

3

分隔符。只创建宽度为8个像素的按钮,没有其他功能。可将其他按钮分隔开

tbrPlaceholder

4

占位符。其外观和功能类似分隔符,但是可以设置其宽度。可用来在工具栏上显示其他控件,如ComboBox控件、ListBox控件

tbrDropDown

5

下拉式菜单按钮,如字体颜色

(6) 宽度(Width):当Style为4时,可设置按钮的宽度。

(7) 图像(Image):按钮上显示的图片在ImageList控件中的编号。

(8) 工具提示文本(ToolTipText):程序运行时,当鼠标指向按钮时显示的说明。

在设计时,可以很方便地在工具栏控件中放置其他控件,例如,组合框、文本框或选项按钮控件等,这可按照下面的步骤执行:

(1) 创建工具栏控件,设置属性。

(2) 在工具栏中为希望显示的其他控件留出空间,然后加入占位符式按钮,将其宽度设置为合适的值。

(3) 在占位符按钮上绘制其他控件。

3. 编写ButtonClick事件代码

工具栏控件的常用事件有ButtonClick事件和Change事件。当用户单击按钮(占位符和分隔符样式的按钮除外)时,将激发ButtonClick事件。此时可以用按钮的Index属性或Key属性标识被单击的按钮。

【例7.3】  利用工具栏来实现例7.1中的字体变化。

分析:为了能够输入更多的文字,这里使用文本框Text1代替了例7.1中的标签,并将文本框的MultiLine属性值设为True,ScrollBars属性值设为2-Vertical

(1) 利用添加部件将ImageListToolbar控件放入工具箱。

(2) 在窗体上添加ImageList1控件,通过其属性窗口,依次将Graphic\Bitmaps\Tlbr_w95目录中的图片文件Bld.bmp,Itl.bmpUndrln.bmp加入到图像框内。

(3) 双击工具箱中的Toolbar控件,在窗体的顶部添加一个工具栏Toolbar1。打开Toolbar1属性对话框,在“通用”选项卡中将图像列表的属性值改为ImageList1,建立与图像列表控件的关联。还可以将样式属性值改为1(tbrFlat式样)。在“按钮”选项卡中依次插入按钮:1,2,3,并同时注意修改他们的图像属性值(这里依次为1,2,3)。由于加粗、倾斜、下划线为复选按钮,还应将三个按钮的样式属性值设为1。

(4) 编写程序代码:

Private Sub Form_Resize()

With Text1

  .Top = Toolbar1.Height

  .Left = 0

  .Height = Form1.ScaleHeight - Toolbar1.Height

  .Width = Form1.ScaleWidth

End With

End Sub

Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)

n = Button.Index

Select Case n

  Case 1

    Text1.FontBold = Not Text1.FontBold

  Case 2

    Text1.FontItalic = Not Text1.FontItalic

  Case 3

    Text1.FontUnderline = Not Text1.FontUnderline

End Select

End Sub

运行程序,显示界面如图7.13所示。

图7.13  例7.3的用户界面

可以用ToolTipText属性设置提示文本。设计时,在Toolbar1控件属性页中的“工具提示文本”框中输入需要的文本,即可为按钮加入提示文本。运行时,可通过设置Button对象的ToolTipText属性动态地改变提示文本。

工具栏控件提供的另一功能是用户定制工具栏。如果将工具栏控件的AllowCustomize属性设置为True,则当用户双击工具栏时,即可显示出“自定义工具栏”对话框。在代码中可以通过调用Customize方法显示对话框。“自定义工具栏”的对话框如图7.14所示。

图7.14  “自定义工具栏“对话框

当用户利用“自定义工具栏“对话框定制了自己的工具条时,Change事件被激活。通常,在该事件中保存用户的定制。

如果允许用户重新配置工具栏控件,那么需要用SaveToolbarRestoreToolbar方法保存和恢复该工具栏。例如,如果多个用户同时使用同一个应用程序,但他们的使用习惯不同,则可以用SaveToolbar方法使用户能够创建自己的定制工具栏。然后创建一个登录过程,用来标识每个用户,并通过RestoreToolbar方法,根据登录信息恢复用户个人的工具栏。

http://www.dtcms.com/a/580990.html

相关文章:

  • 电话交换机软件和录音转文字服务器部署笔记
  • 常州建站程序衡水高端网站建设
  • Java五大排序算法详解与实现
  • [特殊字符] Vue3 + WebView 双端通信桥:用 TypeScript 构建高可维护的 JSBridge 与 JSSDK
  • 自然科学笔记-微积分
  • iOS 上架要求全解析,App Store 审核标准、开发者准备事项与开心上架(Appuploader)跨平台免 Mac 实战指南
  • iOS app语言切换
  • Search-o1:增强大型推理模型的主动搜索能力
  • 个人笔记|IP分片不用TTL
  • 百汇游戏网站开发商南通网站推广公司
  • 【Linux】权限(2):文件权限的深入理解粘滞位
  • 做网站公司如何选百度广告联盟推广链接
  • BIM+GIS协同:RVT文件转3DTiles的技术路径与场景落地
  • 中颖AFE芯片:SH367303、SH367306 和 SH367309
  • 数据结构—排序算法篇三
  • 从“医疗大模型”向“医疗智能体”架构与路径分析(白皮书草案-上)
  • LeetCode算法日记 - Day 95: 回文子串
  • DockerCompose与多容器编排
  • AngularJS与SQL的集成使用指南
  • 【ZeroRange WebRTC】TWCC 在 WebRTC 中的角色与工作原理(深入指南)
  • 数据结构常见的八大排序算法
  • 个人怎么做网站app推广引流方法
  • 初识光伏逆变器
  • 一文了解LLM应用架构:从Prompt到Multi-Agent
  • MongoDB 内存管理避坑指南:解决高占用、页错误等核心问题,让数据库性能翻倍
  • 关于DNS中毒攻击的解决方案分享
  • 【C++】数据挖掘算法在软件测试中的应用
  • WebSocket 完全指南:从原理到实战,搭建实时通信桥梁
  • STM32项目分享:智能水产养殖系统
  • 网站开发线框个体营业执照网上年报