vb菜单与工具栏

170

Visual Basic学习辅导与上机实习

6.2.2 答案与分析

一、选择题(打“*”答案有分析) 【答案】 1.A 2.BD 3.BD* 4.D 5.B 6.A 7.D 8.A* 9.D* 10.A 11.A 12.B 13.C 14.D 15.C 16.A* 17.C 18.AD 19.AB 20.C 21.A 22. B 23.DB 24.ABCDEF 【分析】

3.菜单数组中各元素名称必须相同,且在同一级菜单下,菜单项必须连续(相邻),各元素的索引要惟一,索引值可从任一数开始。

8.在菜单中,菜单项只支持Click事件。

9.在显示弹出菜单后,执行的代码是用户选择菜单项对应的Click事件过程。 16.PopupMenu 方法的语法为:

object.PopupMenu menuname,flags

通过flags指定响应鼠标的方式:0 ——缺省值,仅当使用鼠标左按钮时,弹出式菜单中的项目才响应鼠标单击;2——不论使用鼠标右按钮还是左按钮,弹出式菜单中的项目都响应鼠标单击。

二、填空题 【答案】

1.Caption Name Visible Index Checked Enabled 2.下拉式 弹出式 窗体 菜单编辑器 3.顶 4.Click

5.PopupMenu 6.–

7.Checked 8.PopupMenu 9.Click 10.&

11.菜单编辑器 顶

12.Microsoft Windows Common Controls 6.0 ToolBar 13.Align 14.ImageList

15.ToolBar1.Buttons(5).Enabled=False 16.Style(式样)

17.Microsoft Windows Common Controls 6.0 StatusBar

第6章 菜单与工具栏

171

18.Style(式样)

19.StatusBar1.Panels(2).Picture=LoadPicture(\20.单文档 多文档 21.MDIChild

22.普通窗体 MDI父窗体 MDI子窗体 23.一

24.MDI父窗体

6.3 上 机 实 习

6.3.1 题目

一、编程 1.设计两个窗体fstForm和sndForm,以fstForm为启动窗体,程序运行后,单击窗体fstForm,则卸载fstForm,然后显示窗体sndForm;若用户单击sndForm窗体,则显示fstForm,然后卸除sndForm。

2.设计一个图6-1所示的应用程序界面。 编程要求:

(1) 按表6-1要求设计菜单和快捷按钮;

表6-1

菜 单 级 别 主菜单项 一级子菜单 一级子菜单 二级子菜单 二级子菜单 一级子菜单 一级子菜单 主菜单项 一级子菜单 一级子菜单 一级子菜单 主菜单项 一级子菜单 标 题 文件(&F) 打开(&O)… 设置(&S) 字体(&F)… 颜色(&C)… - 退出(&X) 编辑(&E) 剪切(&T) 复制(&C) 粘贴(&P) 帮助(&H) 关于(&A) 名 称 mnuFile mnuOpen mnuSet mnuFont mnuColor mnuSpbar1 mnuExit mnuEdit mnuCut mnuCopy mnuPaste mnuHelp mnuAbout 快 捷 键 Ctrl+O Ctrl+F F4 Ctrl+X Ctrl+C Ctrl+V 无效(灰色) 无效 无效 状 态 工具栏按钮 有 有 有 有 有 有 (2)工具栏上的快捷按钮与相应的菜单项的事件代码一致;

(3)当用户选中某菜单项或快捷按钮时进行操作时,将该操作的状态显示在状态栏左侧的窗格上。

3.设计一个图6-2所示的由一个MDI窗体和3个MDI子窗体组成的MDI应用程序界面。

172

Visual Basic学习辅导与上机实习

图6-1 图6-2

编程要求:

(1) 执行“层叠”、“平铺”、“排列图标”子菜单项时,3个MDI子窗体分别按要求排列; (2) 单击分隔条下方的某MDI子窗体名称时,该窗体名前出现“√”,同时该窗体被激活; (3) 单击某MDI子窗体的任意位置时,该窗体被激活,同时菜单中该窗体名前出现“√”。(要求只有一个菜单中MDI子窗体名称前出现的√”)

4.试设计一个窗体,其上有两个多行文本框和一个结束按钮,并为两个文本框设计弹出式菜单,以完成在两个文本框之间完成剪切、复制和粘贴。

5.设计一个程序实现Windows系统的记事本的功能。 编程要求:

(1) 程序中含有必要菜单;

(2) 利用Windows的剪贴板对象Clipboard实现对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.在一个“编辑”菜单,其中的“剪切”、“复制”菜单对象名分别为submnuCut和submnuCopy,而文本框对象名为Text1,以下程序用来对“剪切”和“复制”菜单项的有效性进行控制。试

图6-3

第6章 菜单与工具栏

173

填充完成。

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是一个演示MDI界面的程序。MDI父窗体中含一个菜单:菜单ChildForms(含有Open Childs和Close Childs菜单项)和Window。执行Open Childs将打开所有(10个)子窗体,且以不同的颜色显示其窗口背景,执行Close Childs则关闭所有打开的子窗体;执行Window菜单下的菜单项时,按要求排列图标;当某一子窗体被激活时,该子窗体的标题显示“I've been activated!”。完成此程序,改正其中的错误。

图6-4

'父窗体的相关代码

Dim DocumentForms(10) As New ChildForm

Private Sub FormsClose_Click() Dim i As Integer For i = 0 To 9

Unload DocumentForms(i) Next End Sub

174

Visual Basic学习辅导与上机实习

Private Sub FormOpen_Click() Dim i As Integer For i = 0 To 9

DocumentForms.Show

DocumentForms.ForeColor = QBColor(Rnd * 14 + 1) ' QBColor颜色函数 DocumentForms.Caption = \ DocumentForms.Tag = i 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 vbTileVertical End Sub

'子窗体的相关代码 Private Sub Form_Load()

Me.Caption = \End Sub

Private Sub Form_LostFocus()

Me.Caption = \End Sub

'控件的Tag属性可用来存放运行时所需的数据

4. 在名称为Form1的窗体上画两个文本框,名称分别为Text1和Text2,均无初始内容;再建立一个下拉菜单,菜单标题为“操作”,名称为M1,此菜单下含有两个菜单项,名称分别为Copy和Clear,标题分别为“复制”、“清除”,请编写适当的事件过程,使得在运行时,单击“复制”菜单项,则把Text1中的内容复制到Text2中,单击“清除”菜单项,则清除Text2中的内容(即在Text2中填入空字符串)。运行时的窗体如图6-5所示。要求在程序中不得使用任何变量,每个事件过程中只能写一条语句。

Private Sub clear_Click()

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4