1、10.2 菜单设计,主讲人:孙晓雅,10.2 菜单设计,下拉式菜单,“菜单编辑器”是VB提供的一种用来建立菜单栏的工具,利用该工具可以方便快捷的建立起菜单。“菜单编辑器”可以通过以下方式打开:选择“工具”菜单下的“菜单编辑器”命令,或者点击工具栏中的“菜单编辑器”按钮,都可以打开如图7-10所示“菜单编辑器”窗口。,“菜单编辑器”对话框分为两部分:上半部分是控件属性区,用来设置属性,下半部分为菜单编辑区,用来显示用户设置的菜单和菜单项。,属性区的各个属性含义如表7-3所示。,表7-3 菜单控件的主要属性,10.2 菜单设计,下拉式菜单,表7-4编辑区各部分功能,10.2 菜单设计,例子,例【7
2、-2】 创建一个简易文本编辑器。设计方法:在窗体上放置一个文本框Text1,然后按图7-11所示设计菜单,设计方法如上述所示。,编写视图菜单下的“颜色”菜单项的Click事件代码:Private Sub color_Click()CommonDialog1.ShowColorText1.ForeColor = CommonDialog1.colorEnd Sub编写视图菜单下的“字体大小”菜单项下的两个子菜单项的Click事件代码:Private Sub sixteen_Click()Text1.fontsize = 16End SubPrivate Sub twenty_Click()Tex
3、t1.fontsize = 20End Sub编写视图菜单下的“字体风格”菜单项下的两个子菜单项的Click事件代码:Private Sub kai_Click()Text1.FontName = 楷体_GB2312“End SubPrivate Sub li_Click()Text1.FontName = 隶书“End Sub,菜单是VB中的一个控件,因此也能对菜单应用控件数组的概念。菜单控件数组同其他控件数组一样,也是需要依靠Index值来判断选中的哪个菜单项。如果将例7-2中的同一级菜单改成使用菜单控件数组,可将菜单项设置进行如下修改:将“文件”菜单下的“打开”和“保存”的索引(Inde
4、x)值分别设置为1和2,将二者的名称(Name)值均改为files;将“字体大小”菜单下的“16”和“20”的索引(Index)值分别设置为1和2, 将二者的名称(Name)值都改为size;将“字体风格”菜单下的“隶书”和“楷体”的索引(Index)值分别设置为1和2,将二者的名称(Name)值都改为style,具体设置如表7-6所示。,10.2 菜单设计,菜单控件数组,所有的菜单控件都具有Enabled属性,当该属性为False时,菜单项变为灰色,点击时不响应任何操作,快捷键的访问也无效。例如,要使例6-2中的“打开”菜单项无效,可以先进行如下设置:Open.Enabled=False在运
5、行时该菜单项就变成灰色,不响应鼠标或键盘的任何操作。如果要使菜单项在运行时隐藏起来,可以利用Visiable属性达到这一目的。例如:Open.visiable=False在运行时,“打开”这一菜单项就不可见。,菜单无效性设计,弹出式菜单的设计方法如下:先使用菜单编辑器设计一个一般的菜单,然后用VB提供的PopupMenu方法来显示弹出菜单。该方法的使用形式如下:窗体名.PopupMenu 菜单名,标志,X,Y其中,菜单名是必须的,后面的其他几个参数是可选的。菜单名是指用右键单击时要显示的菜单的名称(Name),X和Y参数指定弹出菜单显示的位置,标志参数用于进一步定义弹出菜单的位置和性能,其取值
6、含义如表6-7所示。,10.2 菜单设计,弹出式菜单,例如,在例【7-2】中,右键单击文本框时弹出“字体风格”菜单,可添加如下代码:Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)If Button = 2 Then PopupMenu fontstyle, 6End Sub运行后界面如图7-12所示。其中Button2 表示按下鼠标右键,参数6是4与2的和。,10.2 菜单设计,弹出式菜单,例7-3 设计一个可以改变窗体背景颜色的弹出菜单。首先打开菜单编辑器,如
7、图7-13 建立一个名为mnucolor的菜单,并取消“可见”选择。,10.2 菜单设计,弹出式菜单,菜单控件数组属性设置。,10.2 菜单设计,弹出式菜单,编写如下代码:首先检查是否单击了鼠标右键,如果是单击右键则把mnucolor菜单显示为一个弹出式菜单。Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 2 Then PopupMenu mnucolor End IfEnd Sub,10.2 菜单设计,弹出式菜单,Private Sub red_click() Form1.BackColor = &HFFEnd SubPrivate Sub green_click() Form1.BackColor = &HFF00&End SubPrivate Sub blue_click() Form1.BackColor = &HFF0000 End Sub,10.2 菜单设计,弹出式菜单,编辑菜单下的颜色代码:,