1 / 47

第 5 章 Visual Basic 界面设计

第 5 章 Visual Basic 界面设计. 本章学习要点 掌握 Visual Basic 菜单的设计方法 掌握 Visual Basic 工具栏的设计方法 掌握 Visual Basic 状态栏的设计方法 在 Windows 环境下运行的各种应用程序,虽然各有不同,但这些界面大都有着共同的特点。它们一般都包括菜单、工具栏和状态栏等。设计 Visual Basic 应用程序时,也需要进行界面设计。前面介绍了窗体的设计方法,本章将继续介绍开发 Windows 应用程序中的一些典型界面的方法。. 5.1 菜单设计.

ora
Download Presentation

第 5 章 Visual Basic 界面设计

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第5章 Visual Basic界面设计 本章学习要点 • 掌握Visual Basic菜单的设计方法 • 掌握Visual Basic工具栏的设计方法 • 掌握Visual Basic状态栏的设计方法 • 在Windows环境下运行的各种应用程序,虽然各有不同,但这些界面大都有着共同的特点。它们一般都包括菜单、工具栏和状态栏等。设计Visual Basic应用程序时,也需要进行界面设计。前面介绍了窗体的设计方法,本章将继续介绍开发Windows应用程序中的一些典型界面的方法。

  2. 5.1 菜单设计 • 在Windows环境下,大多数应用软件都是通过菜单来实现各种操作。窗体菜单是Windows应用程序界面中最具特色的部分。而对于Visual Basic应用程序来说,当操作比较简单时,一般通过控件来执行;而当要完成较复杂的操作时,使用菜单具有十分明显的优势。 • 菜单的基本作用有两个,一是提供人机对话的界面,方便用户选择应用系统的各种功能;二是管理应用系统,控制各种功能模块的运行。一个好的菜单程序,不仅能使系统美观,而且能使用户使用方便,并可避免由于误操作而带来的严重后果。 • 在实际应用中,菜单可分为两种基本类型:下拉式菜单和弹出式菜单。例如,启动VisualBasic后,单击“文件”菜单所显示的就是下拉式菜单,而用鼠标右按钮单击窗体时所显示的菜单就是弹出式菜单。

  3. 5.1 菜单设计 • 5.1.1 下拉式菜单 • 下拉式菜单是一种典型的窗口式菜单。下拉式菜单自上而下在屏幕上“下拉”一个个窗口菜单供用户选择或输入信息。在下拉式菜单系统中,一般有一个主菜单,其中包括若干个选择项。主菜单的每一项又可“下拉”出下一级菜单,这样逐级下拉,用一个个窗口的形式弹出在屏幕上,操作完毕即可从屏幕上消失,并恢复原来的屏幕状态。

  4. 菜单标题 菜单栏 子菜单 分隔条 5.1 菜单设计 • 1.下拉式菜单的结构 • 在Visual Basic中,下拉式菜单在一个窗体上设计,一个下拉式菜单包括两类:一是菜单栏,位于窗体的顶部,由若干个菜单标题组成;二是子菜单区,这一区域为临时性的弹出区域,只有在用户选择了相应的主菜单项后才会弹出子菜单,以供用户进一步选择菜单的子项,子菜单中的每一项是一个菜单命令或分隔条,称为菜单项。下拉式菜单的结构如图5-1所示。 图5-1 下拉式菜单结构

  5. 5.1 菜单设计 • 2.菜单编辑器 • Visual Basic通过菜单编辑器创建菜单。可以使用以下四种方法进入菜单编辑器对话框: • (1)单击“工具”菜单项中的“菜单编辑器”选项。 • (2)单击工具栏中的“菜单编辑器”按钮。 • (3)使用热键“Ctrl+E”。 • (4)在要建立菜单的窗体上单击鼠标右键,在弹出菜单中选择“菜单编辑器”,如图5-2所示。 图5-2 在弹出菜单中打开“菜单编辑器”

  6. 5.1 菜单设计 • 打开后的菜单编辑器窗口如图5-3所示。 图5-3 菜单编辑器窗口

  7. 5.1 菜单设计 • 下面介绍“菜单编辑器”对话框的内容。 • (1)标题 • 标题是用来输入所建立的菜单名及菜单中每个菜单项标题的文本框。如果输入1个减号(-),就在菜单中加入了1条分隔线。如果在标题中的某一个字母前加上&,程序运行后在菜单项中该字母将加上下划线,通过“Alt+特定字母”可以访问该菜单项。 • (2)名称 • 名称是用来输入菜单名及各菜单项控制名的文本框,它不在菜单中出现。 • (3)索引 • 索引设置菜单项在菜单数组中的位置。 • (4)快捷键 • 快捷键用来设置菜单项的快捷键。单击右端的箭头,显示热键的下拉式菜单,从中选择菜单项等价的热键。 • (5)帮助上下文ID • 在帮助上下文中键人数值,这个值用来在HelpFile属性中查找相应的帮助主题。 • (6)协调位置 • 协调位置用来确定菜单或菜单项是否出现或在什么位置出现。单击右端的箭头,将下拉显示一个列表,其选项如下: • 0-None 菜单项不显示 • 1-Left 菜单项靠左显示 • 2-Middle 菜单项居中显示 • 3-Right 菜单项靠右显示 • (7)复选 • 当“复选”项被设置为True时,可以在相应的菜单项旁加上指定的记号(例如“√”)。 • 利用这个属性,可以指明某个菜单项当前是否处于活动状态。 • (8)有效 • “有效”选项用来设置菜单项的操作状态。其缺省设置为True,表明相应的菜单项可以对用户事件作出响应;该属性被设置为False时,相应的菜单项会“变灰”,不响应用户事件。

  8. 5.1 菜单设计 • (9)可见 • “可见”选项确定菜单项是否可见,一个不可见的菜单项是不能执行的。其缺省设置为True,即菜单项可见;当设置为False时,该菜单项在菜单上不显示。 • (10)显示窗口列表 • “显示窗口列表”用于多文档窗体。用于确定菜单控件是否包含一个当前打开的MDI子窗体列表。 • (11)右箭头 • 单击一次右箭头显示一个内缩符号(....),把在菜单列表区中选定的菜单向下移一个等级。 • (12)左箭头 • 单击一次左箭头删除一个内缩符号(....),把在菜单列表区中选定的菜单向上移一个等级。 • (13)上箭头 • 单击上箭头使在菜单列表区中选定的菜单项在同级菜单内向上移动一个位置。 • (14)下箭头 • 单击下箭头使在菜单列表区中选定的菜单项在同级菜单内向下移动一个位置。 • (15)下一个 • 开始一个新的菜单项。 • (16)插入 • 用来在当前菜单项前插入一个新的菜单项。 • (17)删除 • 删除当前选中的菜单项。 • (18)菜单项显示区 • 在“菜单编辑器”对话框的下部,输入的菜单项在这里分级显示出来。 • 在“菜单编辑器”中完成了各菜单项的设置之后,单击“确定”按钮关闭“菜单编辑器”,此时在窗体的顶部就可以看到设计的菜单结构。要使菜单完成用户的操作还需完成菜单项的单击事件,才能在运行时通过单击菜单项执行相应的功能。

  9. 5.1 菜单设计 • 5.1.2 “企业资质管理系统”下拉式菜单的设计 • 下面介绍在“企业资质管理系统”中设计下拉式菜单的方法。 • 1.用菜单编辑器建立菜单 • 主菜单项如图5-1所示,各子菜单如图5-4所示。 图5-4 各子菜单项

  10. 5.1 菜单设计 • 在菜单编辑器中设计主菜单和各子菜单项,它们的设置如表5-1所示。 表5-1 菜单项的设置

  11. 5.1 菜单设计

  12. 5.1 菜单设计

  13. 5.1 菜单设计

  14. 5.1 菜单设计

  15. 5.1 菜单设计 • 2.编写菜单事件 • 用户要能操作菜单,就需给每个菜单项编写一个Click事件。用鼠标单击窗体上的各下拉菜单项就可以打开相应的菜单项的Click事件,在其中编写代码。 • 菜单的Click事件代码很多,这里只给出“编辑”菜单项的“新建”子菜单的Click事件,如图5-5所示。用户通过单击相应的按钮就可以打开所需的窗体对象,使用便捷。 图5-5 编写的菜单事件

  16. 5.1 菜单设计 • 5.1.3 弹出式菜单 • 在Windows环境下,除了下拉式菜单外,弹出式菜单应用得也非常广泛。下拉式菜单放置在程序界面得顶部,而弹出式菜单可以出现在窗体的任何部位,适用于少量的菜单项,操作灵活方便。弹出式菜单通过单击鼠标右键打开,所以也称“右键菜单”。 • 设计弹出式菜单的步骤如下: • (1)使用“菜单编辑器” • 在菜单编辑器中按设计下拉式菜单的方法设计弹出式菜单,根据需要将要作为弹出式菜单的顶级菜单设置为可见或不可见,各子菜单项设为可见。 • (2)编写MouseDown事件 • 弹出式菜单使单击鼠标右键所引发的事件,必定要在对象的MouseDown事件过程中编写代码。 • Private Sub Form_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) • End Sub

  17. 5.1 菜单设计 • 参数的意义是: • ①Button值判断按下哪一个鼠标键:1-左键;2-右键;3-中键。 • ②Shift值对Shift、Ctrl和Alt键的位置进行判断: • 0-3个键都向上; • 1-Shift键按下; • 2-Ctrl键按下; • 3-Shift键和Ctrl键按下; • 4-Alt键按下; • 5-Shift键和Alt键Ctrl键按下; • 6-Ctrl键和Alt键按下; • 7-3个键都按下。 • ③X,Y指出鼠标当前位置。 • 在MouseDown事件中用PopupMenu方法显示弹出式菜单,其格式为: • [<对象名>.]PopupMenu<菜单名>[,flags[,x[,y[,boldcommand]]]] • 其作用是在当前对象上的当前鼠标位置或指定的坐标位置显示弹出式菜单。 • 其中: • <对象名>:指菜单所在的位置,如果省略,则默认为是当前窗体。 • <菜单名>:在菜单设计器中设计的菜单项的名称。 • flags:取一个数值或常量,用于指定弹出式菜单的位置和行为,其取值如表5-2和表5-3所示。

  18. 5.1 菜单设计 表5-2 位置常量 表5-3 行为常量

  19. 5.1 菜单设计 • 如果要同时指定位置常量和行为常量时,则将两个参数值用Or连接,如:0 0r 2。 • x:指定显示弹出式菜单的x坐标,省略时为鼠标坐标。 • y:指定显示弹出式菜单的y坐标,省略时为鼠标坐标。 • boldcommand:指定弹出式菜单中的菜单控件的名字,用以显示其黑体正文标题。如果该参数省略,则弹出式菜单中没有以黑体字出现的控件。 • 因此,在对象的MouseDown事件过程中编写代码通常如下 • Private Sub Form_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) • '单击鼠标右键 • If Button=2 Then • '用PopupMenu方法弹出菜单 • PopupMenu 菜单名 • End If • End Sub

  20. 5.1 菜单设计 • 5.1.4 “企业资质管理系统” 弹出式菜单的设计 • 在“企业资质管理系统”中应用了弹出式菜单,如图5-6所示,其设计方法如下。 图5-6 弹出式菜单的应用

  21. 5.1 菜单设计 • (1)在“菜单编辑器”中设置快捷菜单项,如表5-4所示。 表5-4 快捷菜单项的设置

  22. 5.1 菜单设计 • (2)编写MouseDown事件 • 由于快捷菜单在单击表格控件时发生,因此在控件DataGrid1的MouseDown过程中编写代码,如图5-7所示。 图5-7 触发弹出式菜单的事件

  23. 5.2 工具栏的设计 • 工具栏(Toolbar)是Windows窗口的组成部分,常常放在窗口的顶部。它含有与应用程序的菜单相对应的项目,为用户提供快速访问的工具。 • 5.2.1 使用工具栏控件制作工具栏 • 1.添加工具栏控件(Toolbar) • 制作工具栏需要两个Active控件——Toolbar控件和Imagelist控件。使用该控件创建工具栏快捷方便,但在Visual Basic的标准工具箱中没有这两个控件,需要先将它们添加到工具箱中,添加步骤如下: • (1)选择“工程→部件”菜单项,弹出“部件”对话框; • (2)在“部件”对话框中选择“控件”选项卡; • (3)在“控件”选项卡的列表项里选择“Microsoft Windows Common Controls 6.0”; • (4)单击“确定”按钮,在工具箱中增加了一些控件,其中包括Toolbar控件和Imagelist控件,如图5-8所示。 图5-8 工具箱中的Toolbar控件和Imagelist控件

  24. 5.2 工具栏的设计 • 2.使用工具栏控件制作工具栏 • 使用工具栏控件制作工具栏的步骤如下: • (1)创建Imagelist控件 • 通常工具栏的按钮都有相应的图片显示,因此首先创建Imagelist控件,其操作步骤如下: • ①将工具箱中的Imagelist控件加入到窗体中,生成Imagelist1控件; • ②右击Imagelist1控件,在弹出菜单中选择“属性”菜单项,然后在对话框中选择“图像选项卡。” • ③单击“插入图片”按钮,选择合适的图片插入,此时图片索引为1,依次类推,插入所需的图片,此时每个图片都自动生成1个索引号,该索引号在定义工具栏时使用。 • (2)创建Toolbar控件 • 创建了Imagelist1控件后,利用Toolbar控件创建工具栏的步骤如下: • ①将工具箱中的Toolbar控件加入到窗体中,生成Toolbar1控件; • ②右击Toolbar1控件,在弹出菜单中选择“属性”菜单项,弹出“属性页”对话框; • ③“属性页”对话框包括三个选项卡: “通用”、“按钮”和“图片”选项卡,如图5-9所示。

  25. 5.2 工具栏的设计 图5-9 Toolbar控件的“属性页”对话框的“通用”选项卡 • ④设置“通用”选项卡的属性,其中包括的属性如下: • “鼠标指针”:对应于工具栏的MousePointer属性。该属性设置提供了一个下拉列表,从下拉列表中可以选择各种预定义的鼠标指针形状。运行时,当鼠标指向工具栏时,鼠标指针显示成该属性定义的形状。 • “图像列表”:对应于工具栏的Imagelist属性。在图像列表中会列出窗体上的ImageList控件的名称,从列表中选择某个ImageList控件使该工具栏与选择的ImageList控件相关联,这样,该工具栏就可以使用该ImageList控件提供的图像了。 • “外观”:对应于工具栏的Appearance属性,用于决定工具栏是否带有三维效果。 • “边框样式”:对应于工具栏的BorderStyle属性,选择0为无边框样式,选择1为固定单边框。

  26. 5.2 工具栏的设计 • “文本对齐”:对应于工具栏的TextAlignment属性,用于确定文本在按钮上的位置。选择0—tbrTextAlignBottom使文本与按钮的底部对齐,选择1—tbrTextAlignRight使文本与按钮的右侧对齐。 • “样式”:对应于工具栏的Style属性,用于决定工具栏按钮的外观样式。选择0为标准样式,按钮呈标准凸起形状,选择1时按钮呈平面形状。 • “允许自定义”:对应于工具栏的AllowCustomize属性,用于决定运行时是否可用“自定义工具栏”对话框自定义ToolBar控件。如果该属性设置为True,运行时双击ToolBar控件可以打开一个“自定义工具栏”对话框;否则,不允许在运行时用“自定义工具栏”对话框自定义ToolBar控件。 • “可换行的”:对应于工具栏的Wrappable属性,用于决定当重新设置窗体大小时,ToolBar控件按钮是否自动换行。如果该属性设置为True,在重新调整窗体大小时,ToolBar控件上的按钮会自动换行;否则,ToolBar控件上的按钮不会自动换行。 • “显示提示”:对应于工具栏的ShowTips属性,用于决定是否对按钮对象显示工具提示。如果该属性设置为True,工具栏中的每个对象都可以显示一个相关的提示字符串;否则,不允许显示提示字符串。 • “有效”:对应于工具栏的Enabled属性,用于决定工具栏是否有效。

  27. 5.2 工具栏的设计 • ⑤添加工具栏的按钮 • 工具栏中要包含按钮,因此创建工具栏,必须先将按钮添加到工具栏中。在设计时,使用“按钮”选项卡可以添加按钮对象并对各个按钮对象的属性进行设置。选择“属性页”对话框的“按钮”选项卡,如图5-10所示,其中包括的属性如下: 图5-10 在工具栏中添加新按钮

  28. 5.2 工具栏的设计 • “插人按钮”:单击该按钮可以在工具栏上添加一个按钮对象。 • “删除按钮”:单击该按钮可以删除工具栏上由当前索引指定的按钮对象。 • “索引”:对应于按钮对象的Index属性,表示添加的按钮对象的索引值,该索引值由添加次序决定。在代码中访问此按钮对象时要使用该索引值。 • “标题”:对应于按钮对象的Caption属性,用来设置要在按钮对象上显示的文本。 • “关键字”:对应于按钮对象的Key属性,用于给当前的按钮对象定义一个标识符。该标识符在整个按钮对象集合的标识符中必须惟一。 • “样式”:对应于按钮对象的Style属性,用来确定按钮对象的外观和状态。其取值如下: • 0—tbrDefault按钮具有命令按钮的特点。 • 1—tbrCheck按钮是一个复选按钮,可以有选择和未选择两种状态。 • 2—tbrButtonGroup按钮具有选项按钮组的特点。一个按钮组内在任何时刻都只能按下一个按钮。当按下组内的另一个按钮时,原按下的按钮会自动抬起。如果需要多个按钮组,必须使用分隔符对它们进行分组。 • 3—tbrSeparator 按钮作为有8个像素的固定宽度的分隔符使用。使用分隔符可以对不同的选项按钮组进行分组。 • 4—tbrPlaceholder按钮作为占位符使用,在外观和功能上像分隔符,但可以设置其宽度。 • 5—tbrDropDown 按钮呈按钮菜单的样式,选择该选项后,在按钮的旁边会有一个下拉箭头。运行时单击下拉箭头可以打开一个下拉菜单,从中选择所需要的选项。下拉菜单的菜单项可以在本选项卡下部的“按钮菜单”中进一步设置。

  29. 5.2 工具栏的设计 • “工具提示文本”:对应于按钮对象的ToolTipText属性,用于设置按钮的提示信息,运行时鼠标指向该按钮时会出现该提示字符串。 • “图像”:对应于按钮对象的Image属性,可以为每个按钮对象添加图像。图像是由关联的ImageList控件提供的。每个图像在ImageList控件的“属性页”设置中会有一个索引值,在这里只需要指出要使用的图像的索引值即可。 • “可见”:对应于按钮的Visible属性,用来确定按钮是否可见,缺省值为可见(True)。 • “有效”:对应于按钮的Enabled属性,用于决定按钮是否响应用户事件,缺省值为有效(True)。 • “混合状态”:对应于按钮的MixedState属性,用于决定按钮对象是否以不确定状态出现,缺省值为False。 • “插入按钮菜单”按钮:当在“样式”中选择5时,按钮呈按钮菜单的样式,这时可以为按钮添加一个按钮菜单,使用“插入按钮菜单”按钮可以向按钮菜单中增加一个菜单项。 • 对每一个菜单项的访问使用ButtonMenus属性,同样有以下设置: • “索引”:按钮菜单项的索引号,在代码中访问菜单项时要使用该索引值。 • “文本”:对应于按钮菜单项的Text属性,用于设置要在按钮菜单项中显示的文本。 • “有效”:对应于按钮菜单项的Enabled属性。 • “可见”:对应于按钮菜单项的Visible属性。 • ⑥设置“图片”选项卡 • 当在“通用”选项卡的“鼠标指针”设置中选择99-ccCustom时,就可以在“图片”选项卡中为鼠标指针定义一幅图片。运行时,当鼠标指针指向工具栏时,鼠标指针将显示成定义的图片。 • ⑦设置完Toolbar控件的“属性页”对话框中的值,单击“确定”按钮,即生成了系统的工具栏。 • (3)编写事件代码 • 要使工具栏能够实现用户操作的功能,还需编写事件代码,这样运行的工具栏就可以发挥它的作用了。

  30. 5.2 工具栏的设计 • 5.2.2 “企业资质管理系统” 工具栏的设计 • 在“企业资质管理系统”中提供给用户便捷操作的工具栏,下面结合“企业资质管理系统”介绍工具栏的设计步骤。 • 1.添加Toolbar控件和Imagelist控件 • 在上节中介绍了在工具箱中添加Toolbar控件和Imagelist控件的方法,这里不再赘述。 • 2.创建Imagelist控件 • 按前面介绍的方法在工具箱中选择一个Imagelist控件放在窗体中,定义该控件的名称为ToolbarIcons,在ToolbarIcons控件的“属性页”对话框选择“图像”选项卡,单击“插入图片”按钮,依次加入所需的各个图标,如图5-11所示。 图5-11 创建Imagelist控件

  31. 5.2 工具栏的设计 • 3.创建Toolbar控件 • 按前面介绍的方法在工具箱中选择一个Toolbar控件放在窗体中,在Toolbar控件的“属性页”对话框选择“通用”选项卡,在“图像列表”的下拉列表中选择ToolbarIcons控件,使Toolbar控件与Imagelist控件相关联,其它一些属性的设置如图5-12所示。 图5-12 “通用”选项卡的设置

  32. 5.2 工具栏的设计 • 接着选择“按钮”选项卡,添加工具栏的按钮,各按钮的属性设置如表5-5所示。 表5-5 “按钮”选项卡的属性设置

  33. 4.编写事件代码 在Toolbar1控件的Click事件里编写代码如下: Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) On Error Resume Next Select Case Button.Key Case "预览" '添加 '预览' 按钮代码。 selreport Case "打印" '添加 '打印' 按钮代码。 selreport1 Case "返回" '添加 '返回' 按钮代码。 prers Case "向前" '添加 '未命名4' 按钮代码。 nextrs Case "新建" '添加 '新建' 按钮代码。 Select Case selclick Case 1 Form6.Show rs.AddNew Case 2 Form7.Show rs.AddNew Case 3 End Sub Form9.Show rs.AddNew Case 4 Case 5 Form8.Show rs.AddNew End Select mbAddNewFlag = True Case "属性" Select Case selclick Case 1 Form6.Show Case 2 Form7.Show Case 3 Form9.Show Case 4 Case 5 Form8.Show End Select Case "查询" find1.Show '添加 '查询' 按钮代码。 Case "删除" deleters End Select 5.2 工具栏的设计

  34. 5.3 状态栏的设计 • 在Windows环境下的许多应用程序都有状态栏,状态栏通常位于窗体的底部,用来显示有关窗口的信息,诸如日期、时间等等。 • 5.3.1 状态栏的设计 • 1.添加状态栏控件(Statusbar) • 制作状态栏需要添加一个Active控件:Statusbar 控件。在Visual Basic的标准工具箱中没有这两个控件,需要先将它们添加到工具箱中,方法和添加Toolbar控件是一样的,添加了Statusbar控件的工具箱如图5-13所示。 图5-13 工具箱中的Statusbar 控件

  35. 5.3 状态栏的设计 • 2.使用状态栏控件制作状态栏 • 使用状态栏控件StatusBar可以很容易地设计出具有Windows风格的状态栏。设计状态栏的步骤如下。 • (1)创建StatusBar控件 • 利用StatusBar控件创建状态栏的步骤如下: • ①在工具箱中StatusBar控件加入到窗体中,生成StatusBar1控件。 • ②右击StatusBar1控件,在弹出菜单中选择“属性”菜单项,弹出“属性页”对话框; • ③“属性页”对话框包括四个选项卡: “通用”、“窗格”、“字体”和“图片”选项卡,如图5-14所示。 图5-14 StatusBar控件的“属性页”对话框的“通用”选项卡

  36. 5.3 状态栏的设计 • ④设置“通用”选项卡的属性,其中一些属性如下: • “样式”:对应于工具栏的Style属性,用于决定工具栏按钮的外观样式。缺省设置为0-sbrNormal,此时StatusBar 控件显示所有的 Panel 对象;设置为1-sbrSimple时StatusBar控件仅显示一个大面板。 • “鼠标指针”:对应于工具栏的MousePointer属性。该属性设置提供了一个下拉列表,从下拉列表中可以选择各种预定义的鼠标指针形状。运行时,当鼠标指向工具栏时,鼠标指针显示成该属性定义的形状。 • ⑤选择“窗格” 选项卡,如图5-15所示。 “窗格” 选项卡用来添加“窗格”(Panel)对象,以及设置每个“窗格”对象的各种属性,其中一些属性如下: 图5-15 StatusBar控件的“属性页”对话框的“窗格”选项卡

  37. 5.3 状态栏的设计 • “插人窗格”按钮:每次单击该按钮可以在状态栏上添加一个窗格。 • “删除窗格”按钮:每次单击该按钮可以删除状态栏上由当前索引指定的窗格。 • “索引”:对应于Panel对象的Index属性,表示添加的Panel对象的索引值,该索引值由添加次序决定。在代码中访问此Panel对象时要使用该索引值。 • “文本”:对应于Panel对象的Text属性,用于设置要在窗格中显示的文本。 • “图片”:对应Panel对象的Picture属性,单击“浏览”按钮可以给窗格添加一幅图片;单击“无图片”按钮可以清除已添加的图片。 • “工具提示文本”:对应于Panel对象的ToolTipText属性,用于设置相应的窗格的提示信息,运行时鼠标指向该窗格时会出现该提示字符串。 • “关键字”:对应于Panel对象的Key属性,用于给当前的Panel对象定义一个标识符。该标识符在整个Panel对象集合的标识符中必须惟一。

  38. 5.3 状态栏的设计 • “最小宽度”:对应于Panel对象的MinWidth,返回或设置Panel对象的最小宽度,缺省值与状态栏的实际宽度的缺省值相同。当AutoSize属性被设置为1时,使用MinWidth属性可以防止窗格因自动调整大小被调整到太小的宽度。当Autosize属性被设置为0时,MinWidth属性总是被设定为与Width属性相同的值。 • “实际宽度”:对应于Panel对象的Width属性,表示窗格的当前宽度,Width属性值总是反映窗格的实际宽度,并且不能小于MinWidth属性值。 • “对齐”:对应于Panel对象的Alignment属性,用于设置窗格中的文本对齐方式。取值如表5-6所示: 表5-6 Panel对象的Alignment属性取值

  39. 5.3 状态栏的设计 • “样式”:对应于Panel对象的Style属性,用来设置窗格的样式。其属性设置如表5-7所示。 表5-7 Panel对象的Style属性设置

  40. 5.3 状态栏的设计 • 如果将 Style 属性设置为除零以外的任何样式,则任何以 Text 属性设置的文本将不显示,除非将 Style 属性设置为零。 • “斜面”:对应于Panel对象的Bevel属性,用来设置Panel对象的斜面样式。取值如表5-8所示: 表5-8 Panel对象的Bevel属性取值

  41. 5.3 状态栏的设计 • “自动调整大小”:对应于Panel对象的AutoSize属性,用来确定窗格能否自动调整大小。取值如表5-9所示: 表5-9 Panel对象的AutoSize属性取值

  42. 5.3 状态栏的设计 • (2)编写代码 • 状态栏中的信息总是反映当前程序运行的状态,因此时刻在发生变化,要确定状态栏中各窗格对应的值,就需要在事件中编写代码。 • 5.3.2 “企业资质管理系统” 状态栏的设计 • 在“企业资质管理系统”中利用状态栏显示系统运行时的一些信息,包括当前运行的各个数据表的总记录数,当前指针的记录数,当前用户、当前键盘上的Insert状态和当前时间。下面结合“企业资质管理系统”介绍状态栏的设计步骤。 • 1.添加StatusBar控件 • 在上节中介绍了在工具箱中添加StatusBar控件的方法,这里不再赘述。

  43. 5.3 状态栏的设计 • 2.创建StatusBar控件 • (1)在工具箱中选择一个StatusBar控件放在窗体中,定义该控件的名称为StBar1。 • (2)选中StBar1控件,单击右键,在弹出菜单中选择“属性”菜单项,弹出“属性页”对话框。 • (3)在StBar1控件的“属性页”对话框选择“窗格”选项卡,添加各个“窗格”对象。 • (4)单击“插入窗格”按钮,依次加入所需的各个窗格,如图5-16所示。 图5-16 “窗格”选项卡的设置

  44. 5.3 状态栏的设计 • (5)系统中添加了5个窗格,各个窗格的属性设置如表5-10所示。 表5-10 “窗格”选项卡的属性设置

  45. 5.3 状态栏的设计 • 3.编写事件代码 • 窗格对象是一个以1为底的集合,可以用Item属性引用指定的窗格对象,格式如下: • statusbar.panels.Item(index) • 其中,index是窗格的索引号。 • 由于状态栏的信息是系统实时信息,因此状态栏中窗格的取值在不同对象的事件中。 • (1)状态栏的前两个窗格信息:总记录数和当前指针的记录数 • ①单击ListView1的每1项时,状态栏的前两个窗格分别显示当前处理的数据表的总记录数和当前指针的记录数,在ListView1控件的Click事件里编写如下代码: • Private Sub ListView1_Click() • …… • '单击ListView1控件时选择要处理的数据表共有的记录数 • StBar1.Panels.Item(1) = ListView1.SelectedItem.Text + ":共" & rs.RecordCount & "条记录" • '指针所指的记录号 • If rs.RecordCount > 0 Then • StBar1.Panels.Item(2) = "记录:目前在第" & rs.Bookmark & "条记录" • End If • …… • End Sub • ②当导入数据时,第2个窗格显示了导入的总记录数,在导入菜单的Click事件里编写如下代码: • Private Sub import_Click() • …… • StBar1.Panels.Item(2) = "已导入,现在共有" & rs.RecordCount & "条记录" • …… • End Sub • ③在DataGrid1控件里移动光标时,第2个窗格显示当前记录数,在DataGrid1控件的RowColChange事件里编写如下代码: • Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer) • …… • StBar1.Panels.Item(2) = "记录:目前在第" & rs.Bookmark & "条记录" • …… • End Sub

  46. 5.3 状态栏的设计 • (2)在状态栏的第3个窗格里显示当前用户 • 用户登录时输入了用户名,将值带入Form11窗体里,因此在Form_Load事件里编写如下代码: • Private Sub Form_Load() • …… • StBar1.Panels.Item(3) = "当前用户:" & g_user • End Sub • 编写完事件后,运行程序时状态栏显示相应的信息如图5-17所示。 图5-17 运行的状态栏

  47. 5.4 本章习题 • 1.简述下拉式菜单和弹出式菜单的适用环境及用法。 • 2.参照5.1.2节实例设计下拉式菜单。 • 3.参照5.1.4节实例设计弹出式菜单。 • 4.参照5.2.2节实例设计工具栏。 • 5.参照5.3.2节实例设计状态栏。

More Related