第9章 菜单与对话框.ppt
《第9章 菜单与对话框.ppt》由会员分享,可在线阅读,更多相关《第9章 菜单与对话框.ppt(37页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第9 9章章 菜单与对话框菜单与对话框第第9 9章章 菜单与对话框菜单与对话框v9.1 使用菜单使用菜单 菜菜单单是是Windows应应用用程程序序中中十十分分关关键键的的要要素素之之一一,它它以以分分组组的的形形式式组组织织多多个个命命令令或或操操作作,为为用用户户灵灵活活操操作作应应用用程程序提供了便捷的手段。序提供了便捷的手段。在在实实际际的的应应用用中中,菜菜单单可可分分为为两两种种基基本本类类型型:下下拉拉式式菜菜单单和和弹弹出出式式菜菜单单。下下拉拉式式菜菜单单一一般般通通过过单单击击菜菜单单栏栏中中菜菜单单标标题题(如如“文文件件”、“编编辑辑”、“视视图图”等等)的的方方式式
2、打打开开,弹出式菜单则通过用鼠标右键单击某一区域的方式打开。弹出式菜单则通过用鼠标右键单击某一区域的方式打开。9.1.1 9.1.1 下拉式菜单下拉式菜单 在在下下拉拉式式菜菜单单系系统统中中,一一般般有有一一个个主主菜菜单单,称称为为菜菜单单栏栏。其其中中包包括括一一个个或或多多个个选选择择项项,称称为为菜菜单单标标题题。当当单单击击一一个个菜菜单单标标题题时时,包包含含菜菜单单项项的的列列表表(菜菜单单)即即被被打打开开。菜菜单单由由若若干干个个命命令令、分分隔隔条条、子子菜菜单单标标题题(其其右右边边含含有有三三角角的的菜菜单单项项)等等菜菜单单项项组组成成。当当选选择择子子菜菜单单标标
3、题题时时又又会会“下下拉拉”出出下下一一级级菜菜单单项项列列表表,称称为为子子菜菜单单。VB的的菜菜单单系系统统最最多多可达可达6层。层。1.菜单控件菜单控件 在在VB中中,菜菜单单也也是是一一个个图图形形对对象象,即即控控件件。与与其其它它控控件件一一样样,它它具具有有定定义义其其外外观观与与行行为为的的属属性性。在在设设计计或或运运行行时时可可以以设设置置Caption属属性性、Enabled和和Visible属属性性、Checked属属性性以以及及其其它它属属性性。菜菜单单控控件件只只包包含含一一个个事事件件,即即Click事事件件,当当用用鼠鼠标标或或键键盘盘选选中中该该菜菜单单控控件
4、件时时,将将调调用用该该事事件件。与与一一般般控控件件不不同同的的是是,菜菜单单控控件件不不在在VB的的工工具具箱箱中中,需需要要在在VB的的“菜单编辑器菜单编辑器”中进行菜单的设计。中进行菜单的设计。2.菜单编辑器菜单编辑器 用用菜菜单单编编辑辑器器可可以以创创建建新新的的菜菜单单和和菜菜单单项项、在在已已有有的的菜菜单单上上增增加加新新命命令令、编编辑辑已已有有的的菜菜单单命命令令、以以及及修修改改和和删删除除已有的菜单和菜单项。已有的菜单和菜单项。在在VB系系统统的的“工工具具”菜菜单单中中选选择择“菜菜单单编编辑辑器器”,或或在在“工工具具栏栏”上上单单击击“菜菜单单编编辑辑器器”按按
5、钮钮都都可可以以打打开开菜菜单单编编辑器,如图辑器,如图9-2所示。所示。图图9-2 菜单编辑器菜单编辑器 菜单编辑器分为三个部分:菜单编辑器分为三个部分:1)菜菜单单控控件件属属性性区区。用用于于设设置置菜菜单单项项的的各各个个属属性性,表表9-1列出其中的主要属性:列出其中的主要属性:表表9-1 菜单控件的主要属性菜单控件的主要属性其他属性可参见其他属性可参见VB的联机帮助。的联机帮助。属性说明标题(Caption)设置菜单项的标题,相当于控件的Caption属性,也是显示在菜单中的字符。可以在标题中设置热键。可以用分割线将某些菜单项归为一类并与其他项隔开。名称(Name)设置菜单项的名称
6、,相当于控件的Name属性。菜单项的命名规则与控件的命名规则相同。索引(Index)设置菜单控件数组的下标,相当于控件数组的Index属性。快捷键(Shortcut)可设置与菜单项等价的快捷键。在程序运行时,按下快捷键会立刻运行一个菜单项。快捷键的赋值包括功能键与控制键的组合,如Ctrl+F1键或Ctrl+A键。它们出现在菜单中相应菜单项的右边。复选(Checked)“复选”属性设置为True时,可以在相应的菜单项旁加上记号“”。表明该菜单项当前处于活动状态。有效(Enabled)用来设置菜单项的操作状态。如果该属性被设置为False,则相应的菜单项会变“灰”,不响应用户事件。可见(Visib
7、le)设置该菜单项是否可见。如果该属性被设置为False,则相应的菜单项将被暂时从菜单中去掉,直到该属性重新被设置为True。2)编编辑辑区区。编编辑辑区区共共有有7个个按按钮钮,用用来来对对输输入入的的菜菜单单项项进进行简单的编辑。行简单的编辑。3)菜菜单单控控件件列列表表框框。菜菜单单控控件件列列表表框框位位于于菜菜单单编编辑辑器器的的下下部部,输输入入的的菜菜单单项项在在这这里里显显示示出出来来,并并通通过过内内缩缩符符号号表表明菜单项的层次,如图明菜单项的层次,如图9-3所示。所示。图图9-3 菜单控件列表框与对应的菜单项菜单控件列表框与对应的菜单项 3.下拉式菜单的设计下拉式菜单的设
8、计 下下面面通通过过一一个个例例子子来来说说明明菜菜单单程程序序设设计计的的基基本本方方法法和和步步骤骤,这这个个方方法法具具有有通通用用性性,无无论论多多复复杂杂的的菜菜单单都都可可以以通通过过这个方法设计出来。这个方法设计出来。【例例9-1】为为例例4-13中中的的电电子子标标题题板板增增加加一一个个菜菜单单,利利用用菜菜单来控制标题板的内容、字体、字体风格等,如图单来控制标题板的内容、字体、字体风格等,如图9-4所示。所示。图图9-4 利用菜单控制标题板利用菜单控制标题板 只需在例只需在例4-13的基础上作如下修改:的基础上作如下修改:打开菜单编辑器,按照表打开菜单编辑器,按照表9-3设
9、计菜单项:设计菜单项:表表9-3 菜单项的设置菜单项的设置标题(Caption)名称(Name)说明标题板(&F)menu主菜单项1.文本内容(&T)txt子菜单项11.文本字体(&N)nam子菜单项12.宋体song子菜单项121.隶书li子菜单项122.楷体kai子菜单项123.黑体hei子菜单项124.文本风格(&S)styl子菜单项13.粗体bld子菜单项131.斜体itl子菜单项132.下划线undrln子菜单项133 编写菜单项代码。编写菜单项代码。编写编写“文本内容文本内容”项项Txt的的Click事件代码:事件代码:Private Sub Txt_Click()temp=Inp
10、utBox(请输入标题板的新内容请输入标题板的新内容,输入输入,Label1.Caption)If temp Then Label1.Caption=temp End IfEnd Sub 编写编写“文本字体文本字体”中中4个菜单选项的个菜单选项的Click事件代码:事件代码:Private Sub song_Click()Label1.FontName=宋体宋体End SubPrivate Sub li_Click()Label1.FontName=隶书隶书End SubPrivate Sub kai_Click()Label1.FontName=楷体楷体_GB2312End SubPriva
11、te Sub hei_Click()Label1.FontName=黑体黑体End Sub 编写编写“文本风格文本风格”中中3个菜单选项的个菜单选项的Click事件代码:事件代码:Private Sub bld_Click()bld.Checked=Not bld.Checked Label1.FontBold=bld.CheckedEnd SubPrivate Sub Itl_Click()Itl.Checked=Not Itl.Checked Label1.FontItalic=Itl.CheckedEnd SubPrivate Sub Undrln_Click()Undrln.Check
12、ed=Not Undrln.Checked Label1.FontUnderline=Undrln.CheckedEnd Sub4.菜单控件数组菜单控件数组 既既然然VB将将菜菜单单项项视视为为控控件件,因因此此就就能能运运用用控控件件数数组组的的概概念念。菜菜单单控控件件数数组组的的作作用用主主要要有有两两个个:1)用用于于动动态态地地增增删删菜单项。菜单项。2)简化编程,用一段代码处理多个菜单项。简化编程,用一段代码处理多个菜单项。【例例9-2】在例在例9-1中使用菜单控件数组。中使用菜单控件数组。只需在例只需在例9-1的基础上作如下修改:的基础上作如下修改:1)打开菜单编辑器,按照表打开
13、菜单编辑器,按照表9-4修改菜单项:修改菜单项:表表9-4 菜单项的修改菜单项的修改标题(Caption)名称(Name)索引(Index)说明标题板(&F)Menu主菜单项1.文本内容(&T)txt子菜单项11.文本字体(&N)txtFont子菜单项12.宋体fname1子菜单项121.隶书fname2子菜单项122.楷体fname3子菜单项123.黑体fname4子菜单项124.文本风格(&S)Styl子菜单项13.粗体Styly1子菜单项131.斜体Styly2子菜单项132.下划线Styly3子菜单项133 2)修改菜单项代码。修改菜单项代码。删删除除原原“文文本本字字体体”中中4个个
14、菜菜单单选选项项的的Click事事件件代代码码,编编写写“文文本本字字体体”菜菜单单中中的的菜菜单单控控件件数数组组fname的的Click事事件代码:件代码:Private Sub fname_Click(Index As Integer)Select Case Index Case 1 Label1.Fontname=宋体宋体 Case 2 Label1.Fontname=隶书隶书 Case 3 Label1.Fontname=楷体楷体_GB2312 Case 4 Label1.Fontname=黑体黑体 End SelectEnd Sub 删删除除原原“文文本本风风格格”中中3个个菜菜单
15、单选选项项的的Click事事件件代代码码,编编写写“文文本本风风格格”菜菜单单中中的的菜菜单单控控件件数数组组Styly的的Click事事件件代码:代码:Private Sub Styly_Click(Index As Integer)Styly(Index).Checked=Not Styly(Index).Checked Select Case Index Case 1 Label1.FontBold=Styly(Index).Checked Case 2 Label1.FontItalic=Styly(Index).Checked Case 3 Label1.FontUnderline=
16、Styly(Index).Checked End SelectEnd Sub5.菜单项的可用与不可用菜单项的可用与不可用 VB设设计计的的菜菜单单可可以以根根据据程程序序的的运运行行状状态态动动态态地地进进行行调调整整。当当菜菜单单项项所所指指示示的的操操作作不不适适合合当当前前的的环环境境时时,可可以以暂暂时时将将其其关关闭闭,不不让让用用户户选选择择该该菜菜单单项项,也也可可以以干干脆脆把把它它隐隐藏藏起起来来,就就像像根根本本没没有有这这个个菜菜单单项项一一样样,等等到到条条件件成成熟熟时时,再再重新显示被隐藏的菜单项。重新显示被隐藏的菜单项。【例例9-3】在在例例9-2中中,当当前前文
17、文本本的的字字体体在在菜菜单单中中被被关关闭闭菜单项呈灰色,可以选择未被选择的字体。如图菜单项呈灰色,可以选择未被选择的字体。如图9-5所示。所示。只只需需在在例例9-2的的基基础础上上修修改改“文文本本字字体体”菜菜单单中中的的菜菜单单控控件数组件数组fname的的Click事件代码:事件代码:Private Sub fname_Click(Index As Integer)Select Case Index Case 1 Label1.Fontname=宋体宋体 Case 2 Label1.Fontname=隶书隶书 Case 3 Label1.Fontname=楷体楷体_GB2312 C
18、ase 4 Label1.Fontname=黑体黑体 End Select For Each x In fname x.Enabled=IIf(x.Index=Index,False,True)NextEnd Sub 图图9-5 菜单项的可用与不可用菜单项的可用与不可用 隐隐藏藏一一个个菜菜单单项项的的办办法法也也是是很很简简单单的的。在在上上例例中中,修修改改“文文本本字字体体”菜菜单单中中的的菜菜单单控控件件数数组组Fontname的的Click事事件件代码如下,即可隐藏或重现菜单项(如图代码如下,即可隐藏或重现菜单项(如图9-6)。)。Private Sub fname_Click(In
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第9章 菜单与对话框 菜单 对话框
限制150内