收藏 分享(赏)

第九讲 菜单.ppt

上传人:gnk289057 文档编号:7291337 上传时间:2019-05-13 格式:PPT 页数:36 大小:605.50KB
下载 相关 举报
第九讲 菜单.ppt_第1页
第1页 / 共36页
第九讲 菜单.ppt_第2页
第2页 / 共36页
第九讲 菜单.ppt_第3页
第3页 / 共36页
第九讲 菜单.ppt_第4页
第4页 / 共36页
第九讲 菜单.ppt_第5页
第5页 / 共36页
点击查看更多>>
资源描述

1、Visual Basic 6.0程序设计,主讲人:安东兴,在Windows环境下,几乎所有的应用软件都是通过菜单实现各种操作。对于Visual Basic应用程序来说,当操作比较简单时,一般通过控件(如命令按钮)来执行;但当要完成较复杂的操作时,使用菜单具有十分明显的优势。本节将介绍Visual Basic的菜单程序设计技术。,第11章 菜单和菜单程序设计,在实际应用中,菜单可分为两种基本类型,即弹出式菜单和下拉式菜单。 在下拉式菜单系统中,一般有一个主菜单,其中包括若干个选择项,每一项又可“下拉”出下一级菜单。这样逐级下拉,用一个个窗口的形式弹出在屏幕上,操作完毕即可从屏幕上消失,并恢复原来

2、的屏幕状态。 在Visual Basic中,菜单项看做是一个图形对象,即控件,并具备与某些控件相同的属性。每个菜单项相当于一个命令按钮,可以针对其Click事件进行编程,其编程方法与其他控件并无差别。,11.1 菜单,Visual Basic提供了一个菜单编辑器,打开菜单编辑器的方式有以下几种: 执行“工具”菜单中的“菜单编辑器”命令。 使用热键Ctrl+E。 单击工具栏中的“菜单编辑器”按钮。 在要建立菜单的窗体上单击鼠标右键,从弹出的菜单中选“菜单编辑器”命令。 注意: 只有当某个窗体为活动窗体时,才能用上面的方法打开菜单编辑器窗口。打开后的菜单编辑器窗口如图所示。,11.2 菜单编辑器,

3、菜单编辑器窗口分为三部分:即数据区、编辑区和菜单项显示区。,1. 数据区 用来输入或修改菜单项,设置属性。数据区分为若干栏,各栏的作用如下: (1) 标题- Caption属性 是一个文本框,用来输入所建立的菜单的名字及菜单中每个菜单项的标题。如果在该栏中输入一个“-”,则可在菜单中加入一条分隔线。 (2) 名称- Name属性 也是一个文本框,用来输入菜单名及各菜单项的控制名,它不在菜单中出现。每个菜单项都是一个控件,都要为其取一个控制名。 (3) 索引 用来为用户建立的控件数组设立下标。,(4) 快捷键 是一个列表框,用来设置菜单项的快捷键(热键)。单击右端的箭头,将下拉显示可供使用的热键

4、,可选择输入与菜单项等价的热键。 (5) 帮助上下文 是一个文本框,可在该框中键入数值,这个值用来在帮助文件(用HelpFile属性设置)中查找相应的帮助主题。 (6) 协调位置 是一个列表框,用来确定菜单或菜单项是否出现或在什么位置出现。 (7) 复选-Checked属性 当选择该项时,可以在相应的菜单项旁加上指定的记号(例如“”)。它不改变菜单项的作用,也不影响事件过程对任何对象的执行结果,只是设置或重新设置菜单项旁的符号。利用这个属性,可以指明某个菜单项当前是否处于活动状态。,(8) 有效-Enabled 属性 用来设置菜单项的操作状态。在默认情况下,该属性被设置为True,表明相应的菜

5、单项可以对用户事件做出响应。如果该属性被设置为False,则相应的菜单项会变灰,不响应用户事件。 (9) 可见-Visible 属性 确定菜单项是否可见。一个不可见的菜单项是不能执行的,在默认情况下,该属性为True,即菜单项可见。当一个菜单项的“可见”属性设置为False时,该菜单项将暂时从菜单中去掉;如果把它的“可见”属性改为True,则该菜单项将重新出现在菜单中。 (10) 显示窗口列表 用于多文档应用程序。当该选项被设置为On(框内有“”)时,将显示当前打开的一系列子窗口。,2. 编辑区 编辑区共有7个按钮,用来对输入的菜单项进行简单的编辑。在数据区输入菜单,在显示区(见后)显示菜单项

6、。 (1) 左、右箭头 用来产生或取消内缩符号。单击一次右箭头可以产生4个点,单击一次左箭头则删除4个点。4个点被称为内缩符号,用来确定菜单的层次。 (2) 上、下箭头 用来在菜单项显示区中移动菜单项的位置。把条形光标移到某个菜单项上,单击上箭头将使该菜单项上移,单击下箭头将使该菜单项下移。,(3) 下一个 开始一个新的菜单项(回车键作用相同)。 (4) 插入 用来插入新的菜单项。建立了多个菜单项后,如果想在某个菜单项前插入一个新的菜单项,则可先把条形光标移到该菜单项上(单击该菜单项即可);然后单击“插入”按钮,条形光标覆盖的菜单项将下移一行,上面空出一行,可在这一行插入新的菜单项。 (5)

7、删除 删除条形光标所在的菜单项。,3. 菜单项显示区 位于菜单设计窗口的下部,输入的菜单项在这里显示出来,并通过内缩符号()表明菜单项的层次。条形光标所在的菜单项是“当前菜单项”。 说明: (1) “菜单项”是一个总的名称,它包括4个方面的内容: 菜单名、菜单命令、分隔线、子菜单。 (2) 内缩符号由4个点组成,它表明菜单项所在的层次。一个内缩符号(4个点)表示一层,两个内缩符号(8个点)表示两层最多为20个点,即5个内缩符号,它后面的菜单项为第6层。如果一个菜单项前面没有内缩符号,则该菜单为菜单名,即菜单的第一层。,(3) 只有菜单名没有菜单项的菜单称为“顶层菜单”(Toplevelmenu

8、)。在输入这样的菜单项时,通常在后面加上一个叹号(!)。 (4) 如果在“标题”栏内只输入一个“-“(减号),则表示产生一个分隔线。 (5) 除分隔线外,所有的菜单项都可以接收Click事件。 (6) 在输入菜单项时,如果在字母前加上“&”,则显示菜单时在该字母下加上一条下划线,可以通过“Alt+带下划线的字母”打开菜单或执行相应的菜单命令。 输入:“&Close”显示:“Close”,用ALT+C调用 输入:“关闭(&C)”显示:“关闭(C)”,用ALT+C调用,每个菜单项(主菜单项、子菜单项)都可以接收Click事件。每个菜单项都有一个名字(Name属性),把这个名字与Click放在一起,

9、就可以组成该菜单项的Click事件过程。也就是说,程序运行后,只要单击与名字相对应的菜单项,就可以执行事件过程中所定义的操作。 菜单设计完成后,窗体上显示出所设计的菜单项。此时只要单击某个菜单项,即可编写该菜单项的过程,可以像普通事件过程一样输入程序。下面举一个例子来说明菜单的应用。,11.3 菜单的事件响应程序,【例1】 设计一个具有算术运算(+,-*,/)及清除功能的菜单。P296,Private Sub qiut_Click() End End Sub,Private Sub Add_Click() x = Val(num1.Text) + Val(num2.Text) result.C

10、aption = Str$(x) End Sub,Private Sub Min_Click() x = Val(num1.Text) - Val(num2.Text) result.Caption = Str$(x) End Sub,Private Sub clean_Click() num1.Text = “ num2.Text = “ result.Caption = “ num1.SetFocus End Sub,1. 有效性控制 若把一个菜单项的“有效”属性设置为False,就可以使其失效,运行后该菜单项将变为灰色;为了使一个失效的菜单项变为有效,只要把它的“有效”属性重新设置为Tr

11、ue即可实现。其格式是: 菜单名.Enabled =boolean,11.4 菜单项的控制,Private Sub Form_Load()Add.Enabled = FalseMin.Enabled = Falsemul.Enabled = Falsediv.Enabled = False End Sub,Private Sub num1_Change() If num1.Text = “ ThenAdd.Enabled = FalseMin.Enabled = Falsemul.Enabled = Falsediv.Enabled = False ElseAdd.Enabled = True

12、Min.Enabled = Truemul.Enabled = Truediv.Enabled = True End If End Sub,菜单项的有效性,2. 菜单项标记 菜单项标记有两个作用: 一是可以明显地表示当前某个(或某些)命令状态是On或Off,二是可以表示当前选择的是哪个菜单项。其格式是: 菜单名.Checked =boolean,11.4 菜单项的控制,【例2】 设计一个具有数制转换及清除功能的菜单。P302,Private Sub Octv_Click() answer = Val(txtbox.Text) Octv.Checked = True Dec.Checked =

13、False Hexv.Checked = False clean.Checked = False Quit.Checked = False Label5.Caption = Oct$(answer) End Sub,Private Sub clean_Click() txtbox.Text = “ Octv.Checked = False Dec.Checked = False Hexv.Checked = False clean.Checked = True Quit.Checked = False Label4.Caption = “ Label5.Caption = “ Label6.C

14、aption = “ End Sub,3. 键盘选择 用键盘选取菜单通常有两种方法,即热键和访问键(access key)。用热键可以直接执行菜单命令,不必一级一级地下拉菜单,速度较快。 所谓访问键,就是菜单项中加了下划线的字母。只要同时按Alt键和加了下划线的字母键,就可以选择相应的菜单项。用访问键选择菜单项时,必须一级一级地选择。也就是说,只有在下拉显示下一级菜单后,才能用Alt键和菜单项中有下划线的字母键进行选择。 热键和访问键都在设计菜单时直接指定。要设置访问键,必须在准备加下划线的字母的前面加上一个“&”,例如: &New 文件(&F),用前面的方法建立的菜单是固定的,菜单项不能自动

15、增减。为了增加或减少菜单项,必须打开菜单设计窗口,对原来的菜单进行增删。菜单项的增减通过控件数组来实现。一个控件数组含有若干个控件,这些控件的名称相同,所使用的事件过程相同,但其中的每个元素可以有自己的属性。和普通数组一样,通过下标(Index)访问控件数组中的元素。控件数组可以在设计阶段建立,也可以在运行时建立。 使用Load,Unload动态增减菜单项。,11.5 菜单项的增减,【例3】 编写程序,实现菜单项的增减操作。P307,Dim Menucounter As Integer Private Sub AddAp_Click() temp = InputBox(“) Menucount

16、er = Menucounter + 1 Load AppName(Menucounter) AppName(Menucounter).Caption = temp AppName(Menucounter).Visible = True End Sub,Private Sub DelAp_Click() Dim n As Integer, i As Integer n = InputBox(“) If n Menucounter ThenMsgBox “超出范围“Exit Sub End If For i = n To Menucounter - 1AppName(i).Caption = A

17、ppName(i + 1).Caption Next i Unload AppName(Menucounter) Menucounter = Menucounter - 1 End Sub,弹出式菜单是一种小型的菜单。它可以在窗体的某个地方显示出来,对程序事件做出响应,通常用于对窗体中某个特定区域有关的操作或选项进行控制。与下拉式菜单不同,弹出式菜单不需要在窗口顶部下拉打开,而是通过单击鼠标右按钮在窗口(窗体)的任意位置打开,使用方便,具有较大的灵活性。 建立弹出式菜单通常分两步进行: 首先用菜单编辑器建立菜单,然后用PopupMenu方法弹出显示。第一步的操作与前面介绍的基本相同,惟一的区别

18、是,必须把菜单名(即主菜单项)的“可见(Visible)”属性设置为False(子菜单项不要设置为False)。,11.6 弹出式菜单,PopupMenu方法用来显示弹出式菜单,其格式为: 对象.PopupMenu菜单名,Flags,X,Y,BoldCommand 其中,“对象”是窗体名;“菜单名”是在菜单编辑器中定义的主菜单项名;x,y是弹出式菜单在窗体上的显示位置(与Flags参数配合使用,见后);BoldCommand用来在弹出式菜单中显示一个菜单控制;Flags参数是一个数值或符号常量,用来指定弹出式菜单的位置及行为,其取值分为两组: 一组用于指定菜单位置,另一组用于定义特殊的菜单行为

19、。(见书310页和311页),其中: (1) PopupMenu方法有6个参数,除“菜单名”外,其余参数均是可选的。当省略“对象”时,弹出式菜单只能在当前窗体中显示。如果需要弹出式菜单在其他窗体中显示,则必须加上窗体名。 (2) Flags的两组参数可以单独使用,也可以联合使用。当联合使用时,每组中取一个值,两个值相加;如果使用符号常量,则两个值用Or连接。 (3) X和Y分别用来指定弹出式菜单显示位置的横坐标和纵坐标。如果省略,则弹出式菜单在鼠标光标的当前位置显示。,(4) 弹出式菜单的“位置”由X,Y及Flags参数共同指定。如果省略这几个参数,则在单击鼠标右键弹出菜单时,鼠标光标所在位置

20、为弹出式菜单左上角的坐标。在默认情况下,以窗体的左上角为坐标原点。如果省略Flags参数,而不省略X,Y参数,则X、Y为弹出式菜单左上角的坐标;如果同时使用X,Y及Flags参数,则弹出式菜单的位置分为以下几种情况: Flags0 X,Y为弹出式菜单左上角的坐标。 Flags4 X,Y为弹出式菜单顶边中间的坐标。 Flags8 X,Y为弹出式菜单右上角的坐标。,(5) 为了显示弹出式菜单,通常把PopupMenu方法放在MouseDown事件中,该事件响应所有的鼠标单击操作。按照惯例,一般通过单击鼠标右键显示弹出式菜单,这可以用Button变量来实现。对于两个键的鼠标来说,左键的Button变

21、量值为1,右键的Button变量值为2。因此,可以用下面的语句强制通过单击鼠标右键来响应MouseDown事件,显示弹出式菜单: If Button2 Then PopupMenu菜单名,【例4】 编写一个弹出式菜单,用来改变文本框中的字体属性。P311,Private Sub popItalic_Click() Text1.FontItalic = True End Sub,Private Sub Form_Load() Text1.Text = “ABCD“ End Sub,Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 2 ThenPopupMenu popFormat End If End Sub,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报