《VB程序设计第九章菜单.ppt》由会员分享,可在线阅读,更多相关《VB程序设计第九章菜单.ppt(31页珍藏版)》请在金锄头文库上搜索。
1、Visual Basic程序设计教程程序设计教程内蒙古科技大学实践训练中心内蒙古科技大学实践训练中心第九章第九章 菜单菜单9.1 9.1 9.1 9.1 菜单菜单菜单菜单 菜单的种类:下拉式菜单、弹出式菜单 9.1 9.1 下拉式菜单下拉式菜单 1 1、下拉式菜单结构、下拉式菜单结构 结构 : 主菜单栏、子菜单栏; 子菜单又分为:菜单命令或选项、子菜单标题和分隔条; 菜单命令或选项:可以直接执行; 子菜单标题:可以再拉出一级菜单; 分隔条:用于对于子菜单项进行分组; 2 2、设计下拉式菜单、设计下拉式菜单 进入菜单编辑器: 执行”工具“菜单的”菜单编辑器“按钮; 直接执行热键(快捷键) Ctr
2、l+ECtrl+E; 单击”工具栏“上的”菜单编辑器”; 在要建立菜单的窗体上单击鼠标右键,打开快捷菜单,执行“菜单编 辑器”; 9.1 9.1 9.1 9.1 菜单菜单菜单菜单 9.1 9.1 下拉式菜单下拉式菜单 “菜单编辑器”属性区: 属性名属性值说明标题(Caption)字符型数据指定菜单项或菜单命令显示的字符串名称(Name)字符型数据指定菜单控件的名称索引整型数据指定一个数字来确定菜单项或菜单命令在菜单控件数组中的序号,该序号与各菜单控件的位置无关快捷键字符型数据指定菜单命令的快捷键复选逻辑型数据指定是否允许在菜单项的左边设置复选标记有效逻辑型数据指定该菜单项是否可操作可见逻辑型数
3、据设置是否将该菜单项显示在菜单上显示窗口列表逻辑型数据在多重文档(MDI)程序中指定该控件是否包含一个打开MDI子窗体列表9.1 9.1 9.1 9.1 菜单菜单菜单菜单 9.1 9.1 下拉式菜单下拉式菜单 “菜单编辑器”属性区: 说明: “名称”属性是菜单项的必要属性,必须给定; 在输入菜单标题时在某个字母前输入一个&符号。该字母就成了热 键,在窗体上显示时该字母带有下划线,操作时用Alt+该字母就激活 菜单或执行该菜单命令; 分隔符:在菜单的标题栏输入“”号,则菜单显示时形成一个分隔符9.1 9.1 9.1 9.1 菜单菜单菜单菜单 9.1 9.1 下拉式菜单下拉式菜单 “菜单编辑器”编
4、辑区: “”:每单击一次该按钮,产生”.”,称为内缩号,用来确定菜单项的层 次,每单击一次,菜单项下移一个等级; “”:把选定的菜单上移一个等级; “:把选定的菜单在同级菜单内向上(前)移动一个位置; “”:把选定的菜单在同级菜单内向下(后)移动一个位置; “下一个”:开始一个新的菜单项(命令); “插入”:在当前的菜单项前插入一个新的菜单项; “删除”:删除当前的菜单项 “菜单编辑器显示区”: 该区域显示了所创建的菜单,并通过“.”指明了它们的层次。 9.1 9.1 9.1 9.1 菜单菜单菜单菜单 9.1 9.1 下拉式菜单下拉式菜单 例9-1利用菜单命令,控制标签的显示和隐藏 Priva
5、te Sub m_11_Click() Label1.Visible = TrueEnd SubPrivate Sub m_menu1_Click() Label1.Visible = FalseEnd Sub9.1 9.1 9.1 9.1 菜单菜单菜单菜单 9.1 9.1 下拉式菜单下拉式菜单 例例9-29-2设计一个应用程序,通过菜单完成两个整数的加减运算设计一个应用程序,通过菜单完成两个整数的加减运算。Private Sub add_Click() Label1.Caption = + Label3.Caption = Val(Text1.Text) + Val(Text2.Text)E
6、nd SubPrivate Sub sub_Click() Label1.Caption = - Label3.Caption = Val(Text1.Text) + Val(Text2.Text)End Sub9.1 9.1 9.1 9.1 菜单菜单菜单菜单 9.1 9.1 下拉式菜单下拉式菜单 动态菜单的设计动态菜单的设计 动态菜单是指菜单项或菜单命令在程序的运行过程中有增有减; 可设计一个菜单控件数组,即同一菜单上享有相同的名称和事件过程的 一组菜单项(命令)的集合,通过菜单控件数组的下标来访问该数组中的 某一个具体菜单项或菜单命令。 使用loadload方法在菜单控件数组中增加一个新的
7、菜单项(命令),也可以 用UnloadUnload方法从菜单控件数组中删除一个菜单项。 9.1 9.1 9.1 9.1 菜单菜单菜单菜单 9.1.1 9.1.1 下拉式菜单下拉式菜单 动态菜单的设计动态菜单的设计 例例9-39-3才菜单中动态添加才菜单中动态添加“乘法乘法”和和“除法除法”操作。操作。 解题思路:当单击窗体时,调用loadload方法,利用控件数组appendcalappendcal为菜单 增加两个子菜单;当双击窗体时,调用unloadunload方法将新增的两个子菜单删除。 Appendcal_clickAppendcal_click事件是新增的两个菜单的共用事件,当作乘法操
8、作时,参 数indexindex的值为1 1,作除法时为2 2。 9.1 9.1 9.1 9.1 菜单菜单菜单菜单 9.1.2 9.1.2 弹出式菜单弹出式菜单 弹出式菜单独立于菜单栏,直接显示在窗体上; 弹出式菜单通常是单击鼠标右键打开,又称为”右键菜单“或”快捷菜单“; 创建方法:创建方法: 在”菜单编辑器“中,对最高一级菜单的”可见“属性设置为”False“,然后 调用PopupMenuPopupMenu方法将其作为快捷菜单显示出来,格式: 对象名对象名.PopMenuPopMenu 菜单名,菜单名,flagsflags,XX,YY, DefaultMenuDefaultMenu 其中:
9、 对象名:可选项,默认为当前窗体; 菜单名:必选项,要显示的弹出式菜单名,是在菜单编辑器中定义的 主菜单标题,该主菜单标题至少含有一个子菜单; flags:可选项,是一个数值或符号常量,用于指定弹出式菜单的位置 和行为;9.1 9.1 9.1 9.1 菜单菜单菜单菜单值位置常量说明0vbPopMenuLeftAlign缺省值,弹出式菜单的左上角位于坐标(x,y)处4vbPopMenuCenterAlign弹出式菜单的上边框的中央位于坐标(x,y)处8vbPopMenuCenterRight弹出式菜单的右上角位于坐标(x,y)处 9.1.2 9.1.2 弹出式菜单弹出式菜单 FlagsFlags
10、取值表:值位置常量说明0vbPopMenuLeftButton缺省值,弹出式菜单中的命令只接受鼠标左键单击2vbPopMenuRightButton缺省值,弹出式菜单中的命令只接受鼠标右键单击指定菜单行为:若要同时指定菜单位置和行为,则将两个参数值用oror连接:0 or 20 or 29.1 9.1 9.1 9.1 菜单菜单菜单菜单 9.1.2 9.1.2 弹出式菜单弹出式菜单 x,yx,y:指定显示弹出式菜单的x坐标和y坐标,省略时为鼠标的当前坐标; DefaultMenuDefaultMenu:指定弹出式菜单中要显示为黑体的菜单控件的名称,省略 时,则弹出式菜单没有以黑体字出现的菜单项;
11、 在显示弹出式菜单时,一般把PopupMenuPopupMenu方法放在MouseDownMouseDown事件中,该事件响应所有的鼠标单击事件。 通过鼠标右键打开弹出式菜单,可以用ButtonButton参数来判断,左键的ButtonButton参数为1 1,右键的ButtonButton参数为2 2。 例9-4在上例的基础上将”运算“ 菜单作为弹出式菜单显示。 例9-5设计一个弹出式菜单9.2 9.2 9.2 9.2 对话框对话框对话框对话框 VBVB系统提供的对话框系统提供的对话框: 预定义对话框:即由InputBoxInputBox或MsgBoxMsgBox函数创建的对话框; 通用对话
12、框:用CommonDialogCommonDialog控件创建,如“打开对话框”、“字体”对话 框等 ; 用户自定义对话框:用户根据自己的需要在窗体上添加各种控件来构成 自己需要的对话框; 9.2.1 9.2.1 通用对话框通用对话框 VBVB系统提供的基于WindowsWindows的通用对话框: “打开”对话框(OpenOpen) “另存为”对话框(SaveSave) “颜色”对话框(ColorColor) “字体”对话框(FontFont) “打印机”对话框(PrinterPrinter) “帮助”对话框(HelpHelp)9.2 9.2 9.2 9.2 对话框对话框对话框对话框9.2.
13、1 9.2.1 通用对话框通用对话框 1 1、添加通用对话框控件、添加通用对话框控件 方法:系统菜单“工程”“部件”,选择“Microsoft Common DialogMicrosoft Common Dialog Control 6.0Control 6.0” 通用对话框控件注:通用对话框在程序运行后不可见,故在设计时可将其放置在窗体的任何 地方9.2 9.2 9.2 9.2 对话框对话框对话框对话框9.2.1 9.2.1 通用对话框通用对话框 2 2、通用对话框的属性、通用对话框的属性 在窗体上添加通用对话框后,可在属性窗口中单击“自定义”的按钮或者 用鼠标右键单击对话框控件,打开“属性
14、”选项。 3 3、通用对话框的使用、通用对话框的使用 通过设置不同的ActionAction属性值(只能在程序中设置)或调用不同的方法 来决定对话框的类型显示的对话框方法Action属性值“打开”对话框ShowOpen1“另存为”对话框ShowSave2“颜色”对话框ShowColor3“字体”对话框ShowFont4“打印机”对话框ShowPrinter5“帮助”对话框ShowHelp69.2 9.2 9.2 9.2 对话框对话框对话框对话框9.2.1 9.2.1 通用对话框通用对话框 (1)“打开”对话框 程序运行后,将ActionAction属性值设置为1或调用ShowOpenShowO
15、pen方法,即可弹出 “打开”对话框。 在“打开”对话框中,可指定要打开文件的路径、文件名和文件类型。 DialogTitleFileNameInitDirFilterFlagsDefaultExtMaxFile SizeFilterIndexCancelError9.2 9.2 9.2 9.2 对话框对话框对话框对话框9.2.1 9.2.1 通用对话框通用对话框 “打开”对话框属性值: “对话框标题对话框标题”DialogTitleDialogTitle 用途:用于设置对话框的标题; “文件名称文件名称”FileNameFileName 用途:用于设置打开对话框显示的初始文件名。若在对话框中
16、选择了 一个文件并单击“打开”或“保存”按钮,则选择的文件(包含路径) 即为FileNameFileName属性的值; “初始化路径初始化路径”InitDirInitDir 用途:用于指定打开对话框的初始路径,若没有指定该属性,则使用 当前路径; 9.2 9.2 9.2 9.2 对话框对话框对话框对话框9.2.1 9.2.1 通用对话框通用对话框 “打开”对话框属性值: “过滤器过滤器”FilterFilter 用途:用于指定在对话框的文件类型列表框中所要显示的文件类型。 如:选择过滤器为* *.txt.txt,表示显示所有的文本文件。 通常给每个过滤器一个描述,使用管道符号”| |”将过滤器
17、描述和过滤 器隔开;如:下列代码用于设置一个过滤器,其允许打开“文本文件 (*.txt)(*.txt)、或含有位图和JPGJPG图形的文件(*.bmp;*.jpg(*.bmp;*.jpg): : 文本文件文本文件(*.txt) | *.txt | 图形文件图形文件(*.bmp;*.jpg) | *.bmp;*.jpg 描述过滤器描述过滤器“过滤器索引过滤器索引”FilterIndexFilterIndex 用途:当为对话框指定了一个以上的过滤器时,用于确定哪个过滤器作为缺省过滤器。第一个过滤器索引值为1,第二个为2,依此类推。9.2 9.2 9.2 9.2 对话框对话框对话框对话框9.2.1
18、9.2.1 通用对话框通用对话框 “打开”对话框属性值: “标志标志”FlagsFlags 用途:用于确定对话框的一些特性,如是否允许同时选择多个文件等。 ”缺省扩展名缺省扩展名“DefaultExtDefaultExt 用途:当对话框用于保存文件时,如果文件没有指定扩展名,则使用该 属性指定的缺省扩展名,如:* *.txt.txt,* *.doc.doc等 “文件最大长度文件最大长度”MaxFileMaxFile Size Size 用途:用于指定文件的最大长度,单位为字节; ”取消引发错误取消引发错误“CancelErrorCancelError 用途:用于确定运行时在对话框中按”取消“时
19、是否出错。选择该项,相 当于CancelErrorCancelError设为truetrue,按”取消“出错,否则,不出错。 9.2 9.2 9.2 9.2 对话框对话框对话框对话框9.2.1 9.2.1 通用对话框通用对话框 例例9-69-6在窗体上画一个名称为在窗体上画一个名称为command1command1的命令按钮,标题为的命令按钮,标题为”打开文件打开文件“,再画一个名称为,再画一个名称为CD1CD1的通用对话框。程序运行后,若单击命令按钮,则弹出打的通用对话框。程序运行后,若单击命令按钮,则弹出打开文件对话框,并按下列要求设置属性和代码:开文件对话框,并按下列要求设置属性和代码:
20、 设置适当属性,使对话框的标题为设置适当属性,使对话框的标题为”打开文件打开文件“,初始目录为,初始目录为c c盘根目录;盘根目录; 设置适当属性,使对话框的设置适当属性,使对话框的”文件类型文件类型“下拉式组合框中有二行:下拉式组合框中有二行:”WordWord文文 档档“、”所有文件所有文件“,默认的是,默认的是”所有文件所有文件“; 编写命令按钮的事件过程,使得单击按钮可以弹出编写命令按钮的事件过程,使得单击按钮可以弹出”打开文件打开文件“对话框对话框; 思路: 首先,条件、是在对话框属性窗口上配置参数,可在对话框属性窗口内填写”对话框标题“、”初始化路径“的相应内容; 其次,过滤器的内
21、容为:wordword文档文档|*.doc|*.doc|所有文件所有文件|*.*|*.*;且根据题意,过滤器索引值设为2 2; 另,条件是指编写代码,调用通用对话框,可采用如下程序代码: cd1.action=1cd1.action=1 或者 cd1.showopencd1.showopen 均可9.2 9.2 9.2 9.2 对话框对话框对话框对话框9.2.1 9.2.1 通用对话框通用对话框 例例【9-79-7】设计一个程序,用它打开一个文本进行编辑。程序运行后,单击设计一个程序,用它打开一个文本进行编辑。程序运行后,单击”编辑文本文件编辑文本文件“命令按钮,将显示打开对话框,其中列举了命
22、令按钮,将显示打开对话框,其中列举了c:windowsc:windows目录中目录中的所有的文本文件的所有的文本文件* *.txt.txt,双击其中一个,程序调用,双击其中一个,程序调用WindowsWindows的记事本打开这个的记事本打开这个文件。文件。 解题思路: 首先在窗体上画一个命令按钮及一个通用对话框控件,可采用action=1action=1或showopenshowopen方法调用对话框; 其次,对话框的属性可在其属性窗口中配置,也可以在程序运行后,使用命令配置对话框属性,本题采用后者方法。 另,在VBVB系统中调用记事本,可使用shellshell函数,格式如下 shell(
23、program,doc_typeshell(program,doc_type),),其中,programprogram为调用的windowswindows的可执行程序名称,包括路径; doc_typedoc_type为打开文件的方式,一般值为1 19.2 9.2 9.2 9.2 对话框对话框对话框对话框9.2.1 9.2.1 通用对话框通用对话框 2 2、”另存为另存为“对话框对话框 调用方法调用方法:在程序运行后,ActionAction2 2或调用ShowSaveShowSave方法; 属性属性:与”打开“对话框基本一致; ”另存为“对话框可以指定文件要保存的路径、文件名和文件类型; 例例
24、9-89-8编写一个程序,用编写一个程序,用”另存为另存为“对话框将一个文本框的内容写入一个文对话框将一个文本框的内容写入一个文本文件里本文件里。 解题思路:首先在窗体上画一个文本框、命令按钮和通用对话框控件;其中对话框的属性可在其属性窗口中配置,也可在程序中用命令配置; 配置对话框属性 cd1.Filter = 文本文件|*.txt|所有文件|*.* 对话框的过滤器 cd1.FileName = *.txt 对话框的文件名 cd1.DefaultExt = txt 对话框的默认文件扩展名 cd1.Action = 1 调用另存为对话框 将文本框内的内容写入文本文件 Open cd1.File
25、Name For Output As #1 Print #1, Text1.Text Close #19.2 9.2 9.2 9.2 对话框对话框对话框对话框9.2.1 9.2.1 通用对话框通用对话框 3 3、”颜色颜色“对话框对话框 调用方法调用方法:在程序运行后,ActionAction3 3或调用ShowColorShowColor方法; 属性属性:除对话框的基本属性外还有”colorcolor“与“flagsflags”两个属性值; 常数值描述cdlCCFullOpen&H2显示全部对话框,包括定义和自定义颜色部分cdlCCShowHelpButton&H8使对话框显示帮助按钮cdl
26、CCPreventFullOpen&H4使定义自定义颜色命令按钮无效并防止定义自定义颜色cdlCCRGBInit&H1为对话框设置初始颜色9.2 9.2 9.2 9.2 对话框对话框对话框对话框9.2.1 9.2.1 通用对话框通用对话框 3 3、”颜色颜色“对话框对话框 例例9-99-9编写一个应用程序,用编写一个应用程序,用”颜色颜色“对话框设置一个文本框的背景颜色对话框设置一个文本框的背景颜色。 解题思路:首先在窗体上画一个文本框、命令按钮和通用对话框控件; 对于文本框的背景色(backcolorbackcolor)的设置可采用如下命令: text1.backcolor=commondi
27、alog1.colortext1.backcolor=commondialog1.color 例例9-9_19-9_1”颜色颜色“对话框对话框falgsfalgs的属性实例的属性实例 解题思路:首先在窗体上画一个文本框、命令按钮和通用对话框控件; 设置颜色对话框的falgs的属性值为”cdlCCFullOpencdlCCFullOpen”9.2 9.2 9.2 9.2 对话框对话框对话框对话框9.2.1 9.2.1 通用对话框通用对话框 4 4、”字体字体“对话框对话框 调用方法调用方法:ActionAction4 4 或者调用showfontshowfont方法; 属性值属性值: 属性名属性
28、值说明FlagscdlCFEffects(&H100)在字体对话框中显示删除线和下划线复选框以及颜色组合框该属性必须在激活字体对话框之前进行设置cdlFSscreenFonts(&H1)显示屏幕字体cdlFPrintFonts(&H2)显示打印机字体cdlCFBoth(&H3)显示打印机字体和屏幕字体FontName字符型数据用户所选的字体名称FontSize整型数据用户所选的字体大小FontBold逻辑性数据用户所选的字体是否加粗FontItalic逻辑性数据用户所选的字体是否斜体FontUnderLine逻辑性数据用户所选的字体是否加下划线FontStrikethra逻辑性数据用户所选的字
29、体是否加删除线9.2 9.2 9.2 9.2 对话框对话框对话框对话框9.2.1 9.2.1 通用对话框通用对话框 4 4、”字体字体“对话框对话框 例例9-109-10编写一个程序,用编写一个程序,用“字体字体”对话框设置一个文本框的字体对话框设置一个文本框的字体。 解题思路:在程序中,首先要设置对话框的flagsflags属性,然后设置文本框的字体属性,如:fontnamefontname、fontsizefontsize等相应属性,如: text1.fontname=commondialog1.fontnametext1.fontname=commondialog1.fontname等;
30、 cd1.Flags = cdlCFBoth Or cdlCFEffects cd1.ShowFont 根据用户在字体对话框中的选择来设置文本框字体 Text1.FontName = cd1.FontName Text1.FontBold = cd1.FontBold Text1.FontSize = cd1.FontSize Text1.FontItalic = cd1.FontItalic Text1.FontStrikethru = cd1.FontStrikethru Text1.FontUnderline = cd1.FontUnderline Text1.ForeColor = c
31、d1.Color9.2 9.2 9.2 9.2 对话框对话框对话框对话框9.2.1 9.2.1 通用对话框通用对话框 5 5、”打印机打印机“对话框对话框 调用方法调用方法:ActionAction5 5 或者调用showprintershowprinter方法; 属性值属性值: 属性名说明Copies指定打印份数FromPage指定打印起始页号ToPage指定打印终止页号例例9-11 9-11 编写一个程序,用编写一个程序,用“打印机打印机”对话框打印一个文本框内容对话框打印一个文本框内容。解题思路:打印份数要由FORNEXT循环程序加以控制。 9.2 9.2 9.2 9.2 对话框对话框对
32、话框对话框9.2.1 9.2.1 通用对话框通用对话框 6 6、”帮助帮助“对话框对话框 调用方法调用方法:ActionAction6 6 或者调用showhelpshowhelp方法; 属性值属性值: 属性名说明HelpCommand用于返回设置所需在线帮助类型HelpFile用于指定Help的路径及文件名HelpKey用于指定要显示的帮助内容的关键字注:帮助对话框不是用来制作应用程序的帮助文件的 ,它仅仅是将已制好的帮助文件从磁盘中提取出来,并与帮助对话框所提供的界面联接,达到显示并检索帮助信息的目的。9.2 9.2 9.2 9.2 对话框对话框对话框对话框9.2.2 9.2.2 自定义对
33、话框自定义对话框 所谓“自定义对话框”就是用户自己设计的一个窗口,窗口上放置一些用于交互信息的控件。 一般自定义对话框的属性设置:属性名属性值说明BorderStyle1防止对话框在运行时被改变大小ControlBoxFalse取消控制菜单MaxButtonFalse取消最大化按钮MinButtonFalse取消最小化按钮注:“自定义对话框”一般情况下都设有“确定”和“取消”按钮,其他控件可根据需要而定。9.2 9.2 9.2 9.2 对话框对话框对话框对话框9.2.2 9.2.2 自定义对话框自定义对话框 “自定义对话框”的调用: 一般情况下,调用ShowShow方法即可,但由于调用Show
34、Show方法时,参数不同,因而调用后的“自定义对话框”的状态有所不同: 将自定义窗体作为模式对话框显示将自定义窗体作为模式对话框显示 模式对话框必须先关闭对话框,才能继续操作其他窗体。如“字体”对话框 调用格式: 自定义对话框窗体名自定义对话框窗体名.Show .Show vbModalvbModal 或 自定义对话框窗体名自定义对话框窗体名.Show 1.Show 1 将自定义对话框作为无模式对话框显示将自定义对话框作为无模式对话框显示 无模式对话框允许不关闭对话框,在对话框和其他窗体间间移动焦点。如“查找”对话框。 调用格式:自定义对话框窗体自定义对话框窗体.Show .Show vbMo
35、dalessvbModaless 或 自定义对话框窗体自定义对话框窗体.Show 0.Show 0 9.3 9.3 9.3 9.3 综合应用举例综合应用举例综合应用举例综合应用举例例例9-12 9-12 在窗体上画一个文本框,把它的在窗体上画一个文本框,把它的MutilineMutiline属性设为属性设为TrueTrue,通过菜单命,通过菜单命令向文本框中输入信息并对文本框中的文本格式化令向文本框中输入信息并对文本框中的文本格式化。解题思路:首先在窗体上画文本框,并设置相应的属性值;再设置菜单及其菜单项;最后,编写各子菜单项的相应的程序语句。例例9-13 9-13 编写一个简单的文本编辑程序。文本内容是在打开对话对话框中所选编写一个简单的文本编辑程序。文本内容是在打开对话对话框中所选择的文件名择的文件名。解题思路:本题是对通用对话框的综合使用,针对各对话框的特点,设置其属性值。