vb菜单与工具栏_第1页
vb菜单与工具栏_第2页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 10/10vb菜单与工具栏 第6章菜单与工具栏 6.1 学习要点与必备知识 【学习要点】 ?用户菜单、弹出式菜单的设计。 ?工具栏、状态栏的设计(选学内容)。 ?MDI窗体的基本构成与设计。 【必备知识】 1菜单 菜单系统组成、菜单控件属性(Name、Caption、Checked、Enabled、Visible)。快捷键及访问键的设置、菜单项间的分隔线设置、菜单控件的事件(Click事件)、利用控件数组动态创建菜单(菜单项用Load语句创建,用UnLoad清除)。 2弹出式菜单 弹出式菜单特点、设计方法、弹出式菜单的显示(PopupMenu方法的使用)。 3工具栏和状态栏(选学内容) 图像

2、列表控件ImageList的功能和使用,工具栏ToolBar属性的设置,工具栏按钮单击事件及代码设计、状态栏StatusBar控件上的窗格(Panel对象)属性(样式Style、Text、对齐Align、图片Picture等)。 4多文档界面MDI 标准窗体、MDI父窗体和MDI子窗体的概念、常用的属性(ActiveForm、ActiveControl、AutoShowChildren、MdiChild)、常用的方法(Arrange方法)、常用的事件(QueryUnload事件)及应用。 6.2 习题精选 6.2.1 题目 一、选择题 1在菜单中放置分隔栏的方法是将该菜单项的Caption设为

3、( ) A连字符(-) B下划线(_) C连接符(&) D两个连续的下划线(_ _) 2以下陈述中正确的是( )(多选) A分隔栏可以出现在顶级菜单项中 B顶级菜单项的Checked属性不能为True C对同一个菜单项,为其指定访问键后,就不能再为其指定快捷键 D菜单项的Enabled属性设为False后,它会被灰化显示 3菜单项数组必须满足( )(多选) AName属性值可以不同B有相同的行首缩进 C所有元素在菜单中可以不连续D各元素必有惟一索引值 4为了响应工具栏上的多个按钮的单击事件,可以通过按钮的( )属性识别是由哪个按钮引发。 AButton BKey CIndex DB 和C均可5

4、在使用菜单编辑器创建菜单时,可在菜单名称中某字母前插入( )符号,那么在运行程序时按Alt键和该字母键就可以打开该命令菜单。 A下划线B& C$ D 6如果要在两个菜单命令项之间加一条分隔线,可在标题文本框中键入( )。 AB+ C& D# 7在用菜单编辑器设计菜单时,必须输入的项是( )。 A快捷键B标题C索引D名称8菜单控件仅支持以下( )事件。 AClick BMouseDown CKeyPress DLoad 9在使用弹出菜单时,下面说法不正确的情况是( )。 A只能同时显示一个弹出菜单 B使用PopupMenu 方法来显示弹出菜单 C在设计时,应该将弹出菜单的顶层菜单项的Visibl

5、e属性设为False D在显示弹出菜单以后,将执行以后的代码 10下列不能打开菜单编辑器的操作是( )。 A按Ctrl+E B单击工具栏中的“菜单编辑器”按钮 C执行“工具”菜单中的“菜单编辑器”命令 D按Shift + Alt + M 11假定有一个菜单项,名为MenuItem,为了在运行时使该菜单项失效(变灰),应使用的语句为( )。 AMenuItem. Enabled=False BMenuItem. Enabled=True CMenuItem. Visible=True DMenultem. Visible=False 12以下关于菜单编辑器中“索引”项的叙述中,错误的是( )。

6、A“索引”确定了菜单项显示的顺序 B“索引”是控件数组的下标 C使用“索引”时,可有一组菜单项具有相同的“名字” D使用“索引”后,在单击菜单项的事件过程中可以通过“索引”引用菜单项13用户通过设置菜单项的( )属性值为False来使该菜单项不可见。 AHide BChecked CVisible DEnabled 14下列关于菜单的说法中,错误的是( )。 A每个菜单项都是一个控件,与其他控件一样也有其属性和事件 B除了Click事件之外,菜单项不可以响应其他事件 C菜单项的索引号可以不连续 D菜单项的索引号必须从1开始 15通常一个Windows 应用程序的功能都能够通过菜单交互方式来进行

7、。下列关于菜单交互方式的选项中错误的是( )。 A用户在一组多个可能的对象中进行选择 B各种可能的选择以菜单项的形式分列显示 C菜单项的分组设置一般不分类 D每个菜单项被选取都会导致执行某一种操作 16在下列程序中,( )不论使用鼠标右键还是左键弹出的菜单中的菜单项都响应鼠标单击。 APrivate Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 2 Then PopupMenu Menu_test, 2 End If End Sub BPrivate S

8、ub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) PopupMenu Menu_test, 0 End Sub CPrivate Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) PopupMenu Menu_test End Sub DPrivate Sub Form_MouseDown(Button As Integer, Shift As Integer, X As

9、 Single, Y As Single) If (Button = vbLeftButton) Or (Button = vbRightButton) Then PopupMenu Menu_test End If End Sub 17以下有关由多个窗体和标准模块组成的应用程序设计方法的叙述中,错误的是( )。 A在缺省情况下,设计时的第一个窗体被指定为启动窗体 B通过人为设置,可指定任一窗体为启动窗体 C通过人为设置,可指定标准模块中的Main()过程为启动过程 D通过人为设置,可指定窗体模块中的Main()过程为启动过程 18以下陈述中正确的是( )。(多选) A一个应用程序中只能有一个

10、MDI父窗体 BMDI父窗体上可以放置任意控件 C可以用Print方法在MDI父窗体上显示信息 D一个MDI子窗体最小化后,其图标显示在MDI父窗体中 19要在工程中创建一个MDI父窗体只要( )。(多选) A在菜单中选择工程添加MDI窗体 B在工具栏的添加按钮的下拉菜单中选择MDI窗体 C新建一个窗体,其将MDIChild属性设为True D新建一个窗体,其将MDIChild属性设为False 20要使MDI子窗体在加载时就自动显示出来,应( )。 A将Scrollbars属性设为True B将Scrollbars属性设为False C将AutoShowChildren属性设为True D将

11、AutoShowChildren属性设为False 21使用MDI窗体时,对于下面的说法选择正确的选项( )。 A能在MDI窗体中打开多个文档界面 B子窗体是模式窗口 C子窗体的和父窗体能够同时显示自己的菜单 D如果子窗体的BorderStyle属性为vbFixedToolWindow,其大小将不能改变22多窗体程序由多个窗体组成。在缺省情况下,VB在执行应用程序时,总是把( )指定为启动窗口。 A不包含任何控件的窗口B设计时的第一个窗体 C命名为Frm1的窗体D包含控件最多的窗体 23要使自定义的对话框Form1退出,可以在该对话框的“退出”按钮的Click事件过程中使用以下( )中的一个语

12、句。(多选) AForm1.Unload BUnload Form1 CForm1.Hide DUnload Me 24MDI窗体的QueryUnload事件将在( )时候被触发。(多选) A在代码中使用Unload语句 B当前Windows操作结束 C利用Windows任务管理器关闭应用程序 DMDI窗体正在关闭 E窗体的所有者正在关闭 F双击窗体图标或选择控制菜单中的“关闭”命令 二、填空题 1菜单编辑器的“标题”选项对应于菜单控件的_属性。 菜单编辑器的“名称”选项对应于菜单控件的_属性。 菜单编辑器的“可见”选项对应于菜单控件的_属性。 菜单编辑器的“索引”选项对应于菜单控件的_属性。

13、 菜单编辑器的“复选”选项对应于菜单控件的_属性。 菜单编辑器的“有效”选项对应于菜单控件的_属性。 2菜单分为_菜单和_菜单,菜单总与_相关联,设计菜单需要在_中设计。 3不可以给_级菜单设置快捷键。 4菜单中的分隔条是一种菜单控件,但不响应_事件,也不能被选中。 5为显示弹出式菜单,可以使用_方法。 6如果菜单标题的某个字母前输入一个“&”符号,那么该字母就成了热键字母;如果在建立菜单时在标题文本框中输入一个“_”,那么显示时形成一个分隔符。 7如果把菜单项的_属性设置为True,则该菜单项成为一个选项。 8不管是在窗口顶部菜单条上显示的菜单,还是隐藏的菜单,都可以用_方法把它们作为菜单在

14、程序运行期间显示出来。 9菜单设计中每一个菜单项是一个控件,这些控件都只有一个_事件。 10为了能够通过键盘访问主菜单项,可在菜单编辑器的“标题”选项中的某字母前插入_符号。运行时,该字母会带有下划线,按Alt键和该字母就可以访问相应的主菜单项。 11弹出式菜单在_中设计,且一定要使其_级菜单不可见。 12要使用工具栏控件设计工具栏,应先在“部件”对话框中选择_,然后从工具箱中选_控件。 13设置工具栏控件的_属性可以改变工具栏在窗体上的位置。 14要给工具栏按钮添加图像,应首先在_控件中添加所需要的图像,然后在工具栏的属性页中选择与该控件相关联。 15运行时,要使工具栏ToolBar1中索引

15、值为5的按钮无效,应使用语句:_。 16要使工具栏控件的某按钮呈菜单的式样,可以在其属性页中设置其_选项为5-tbrDropDown。 17要使用状态栏控件设计状态栏,应首先在“部件”对话框中选择_,然后从工具箱中选择_控件。 18状态栏由多个“窗格”对象组成,“窗格”对象的特征是通过状态栏的_属性决定的。 19要在运行时给状态StstusBar1的第二个窗格添加一幅图片,该图片由文件“c:windowsglass.ico”指定,应使用语句:_。 20SDI指_界面,MDI指_界面。 21要将某窗体定义为一个MDI子窗体,需要将其_属性设置为True 22在一个MDI应用程序中,可以含有_、_

16、、_这3类窗体。 23一个应用程序最多可以有_个MDI父窗体。 24在运行时,MDI父窗体中的子窗体最小化时,其图标将显示在_中。 6.2.2 答案与分析 一、选择题(打“*”答案有分析) 【答案】 1A 2BD 3BD* 4D 5B 6A 7D 8A* 9D* 10A 11A 12B 13C 14D 15C 16A* 17C 18AD 19AB 20C 21A 22B23DB 24ABCDEF 【分析】 3菜单数组中各元素名称必须相同,且在同一级菜单下,菜单项必须连续(相邻),各元素的索引要惟一,索引值可从任一数开始。 8在菜单中,菜单项只支持Click事件。 9在显示弹出菜单后,执行的代码

17、是用户选择菜单项对应的Click事件过程。 16PopupMenu 方法的语法为: object.PopupMenu menuname,flags 通过flags指定响应鼠标的方式:0 缺省值,仅当使用鼠标左按钮时,弹出式菜单中的项目才响应鼠标单击;2不论使用鼠标右按钮还是左按钮,弹出式菜单中的项目都响应鼠标单击。 二、填空题 【答案】 1Caption Name Visible Index Checked Enabled 2下拉式弹出式窗体菜单编辑器 3顶 4Click 5PopupMenu 6 7Checked 8PopupMenu 9Click 10& 11菜单编辑器顶 12Micros

18、oft Windows Common Controls 6.0 ToolBar 13Align 14ImageList 15ToolBar1.Buttons(5).Enabled=False 16Style(式样) 17Microsoft Windows Common Controls 6.0 StatusBar 18Style(式样) 19StatusBar1.Panels(2).Picture=LoadPicture(c:windowsglass.ico) 20单文档多文档 21MDIChild 22普通窗体MDI父窗体MDI子窗体 23一 24MDI父窗体 6.3 上机实习 6.3.1

19、题目 一、编程 1设计两个窗体fstForm和sndForm,以fstForm为启动窗体,程序运行后,单击窗体fstForm,则卸载fstForm,然后显示窗体sndForm;若用户单击sndForm窗体,则显示fstForm,然后卸除sndForm。 2设计一个图6-1所示的应用程序界面。 编程要求: (1) 按表6-1要求设计菜单和快捷按钮; 表6-1 (2)工具栏上的快捷按钮与相应的菜单项的事件代码一致; (3)当用户选中某菜单项或快捷按钮时进行操作时,将该操作的状态显示在状态栏左侧的窗格上。 3设计一个图6-2所示的由一个MDI窗体和3个MDI子窗体组成的MDI应用程序界面。 图6-1

20、 图6-2 编程要求: (1) 执行“层叠”、“平铺”、“排列图标”子菜单项时,3个MDI子窗体分别按要求排列; (2) 单击分隔条下方的某MDI子窗体名称时,该窗体名前出现“”,同时该窗体被激活; (3) 单击某MDI子窗体的任意位置时,该窗体被激活,同时菜单中该窗体名前出现“”。(要求只有一个菜单中MDI子窗体名称前出现的”) 4试设计一个窗体,其上有两个多行文本框和一个结束按钮,并为两个文本框设计弹出式菜单,以完成在两个文本框之间完成剪切、复制和粘贴。 5设计一个程序实现Windows系统的记事本的功能。 编程要求: (1) 程序中含有必要菜单; (2) 利用Windows的剪贴板对象C

21、lipboard实现对Windows剪贴板的操作。 6修改上题程序。 要求: (1) 增加工具栏、状态栏,并为工具栏中的按钮编写事件代码; (2) 可同时编辑多个文件; (3) 可以改变窗口编辑框中的字体、颜色,可以排列窗口。 二、改错或填充 1在一个含有文本编辑框的编辑界面上,要求当用户在文本框上右击鼠标时弹出图6-3所示的快捷菜单。完成该程序。 Private Sub Text1_ _(Button As Integer, Shift As Integer, X As Single, Y As Single) If _ Then _ mnuEdit End If End Sub 2在一个“

22、编辑”菜单,其中的“剪切”、“复制”菜单对象 名分别为submnuCut和submnuCopy,而文本框对象名为Text1, 以下程序用来对“剪切”和“复制”菜单项的有效性进行控制。试图6-3 填充完成。 Private Sub Text1_ _(Button As Integer, Shift As Integer, _ X As Single, Y As Single) If Text1.SelLength _ Then submnuCut.Enabled = True submnuCopy.Enabled = True Else _ _ End If End Sub 3图6-4是一个演示

23、MDI界面的程序。MDI父窗体中含一个菜单:菜单ChildForms(含有Open Childs和Close Childs菜单项)和Window。执行Open Childs将打开所有(10个)子窗体,且以不同的颜色显示其窗口背景,执行Close Childs则关闭所有打开的子窗体;执行Window菜单下的菜单项时,按要求排列图标;当某一子窗体被激活时,该子窗体的标题显示“Ive been activated!”。完成此程序,改正其中的错误。 图6-4 父窗体的相关代码 Dim DocumentForms(10) As New ChildForm Private Sub FormsClose_C

24、lick() Dim i As Integer For i = 0 To 9 Unload DocumentForms(i) Next End Sub Private Sub FormOpen_Click() Dim i As Integer For i = 0 To 9 DocumentForms.Show DocumentForms.ForeColor = QBColor(Rnd * 14 + 1) QBColor颜色函数 DocumentForms.Caption = Document & Format(i) DocumentForms.Tag = i 控件的Tag属性可用来存放运行时所

25、需的数据Next End Sub Private Sub WindowArrange_Click() MDIForm1.Arrange vbArrangeIcons End Sub Private Sub WindowCascade_Click() MDIForm1.Arrange vbCascade End Sub Private Sub WindowTileH_Click() MDIForm1.Arrange vbTileHorizontal End Sub Private Sub WindowTileV_Click() MDIForm1.Arrange vbTileV ertical E

26、nd Sub 子窗体的相关代码 Private Sub Form_Load() Me.Caption = Ive been activated! End Sub Private Sub Form_LostFocus() Me.Caption = Document & Format(i) End Sub 4. 在名称为Form1的窗体上画两个文本框,名称分别为Text1和Text2,均无初始内容;再建立一个下拉菜单,菜单标题为“操作”,名称为M1,此菜单下含有两个菜单项,名称分别为Copy和Clear,标题分别为“复制”、“清除”,请编写适当的事件过程,使得在运行时,单击“复制”菜单项,则把Te

27、xt1中的内容复制到Text2中,单击“清除”菜单项,则清除Text2中的内容(即在Text2中填入空字符串)。运行时的窗体如图6-5所示。要求在程序中不得使用任何变量,每个事件过程中只能写一条语句。 Private Sub clear_Click() _ End Sub Private Sub copy_Click() _ End Sub 6.3.2 编程提示 一、编程 1参考代码: Private Sub Form_Click() Load sndForm sndForm.Show Unload Me End Sub 2编程要点: (1) 将用户选择操作显示在窗格上,可用以下形式: Sta

28、tusBar1.Panels(1).Text = mnuOpen.Caption (2) 利用工具栏按钮的Index 属性,将按钮的单击事件共享菜单的单击事件代码。如: Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib Button) Select Case Button.Index Case 1 mnuOpen_Click 3窗体的排列可利用MDI 父窗体的Arrange 方法,在进行菜单设计时,选中“窗口”菜单项的WindowList 属性。 4通过菜单设计器,设计两个一级菜单分别用于两个文本框的弹出式菜单,它们的Enabled 设为False 。在文本框的MouseDown 或MouseUp 事件中,调用PopupMenu 方法显

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论