菜单的添加可以单击“工具”进入“菜单编辑器”;也可以直接在工具栏上找到,如图2-7所示。
图2-7 菜单编辑
我们为了对比测试,建立了两个菜单,一个是可见的(见图2-8),另一个是不可见的(见图2-9),添加菜单栏菜单的程序运行结果如图2-10所示。
图2-8 添加菜单栏可见菜单
图2-9 添加弹出式不可见菜单
图2-10 添加菜单栏菜单程序的运行结果
首先测试一下这个不可见的菜单如何操作。不可见的菜单主要用于右键弹出式菜单设计。在这个案例中,将这个不可见的菜单作为FileList的筛选器。
首先,双击FileList控件,选择MouseDown过程。开始添加如下代码:
Private Sub FileList_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 2 Then Me.PopupMenu Me.mFilter End If End Sub
运行结果如图2-11所示。
图2-11 增加弹出式菜单的程序运行结果
运行该代码仅是把菜单弹出来,菜单里并没有功能。接下来需要在菜单里添加功能。有两种方法可以向菜单添加功能。第一种是直接进入代码编辑区,在部件选择下拉菜单里找到要添加的部件,进入编辑。第二种是返回菜单编辑器,将筛选菜单先显示出来;然后在窗体编辑界面直接单击,进入菜单代码编辑区。这两种方法都可以实现对菜单功能的编码。笔者建议采取第二种方法,在发布的时候将需要隐藏的菜单隐藏起来。
现在我们要对FileList里的文件后缀名进行筛选,根据刚才菜单的设置,需要筛选出dat文件、txt文件,以及显示全部文件。
添加代码如下:
Private Sub mDatFile_Click() Me.FileList.Pattern = "*.dat" End Sub Private Sub mTxtFile_Click() Me.FileList.Pattern = "*.txt" End Sub Private Sub mAllFile_Click() Me.FileList.Pattern = "*.*" End Sub
运行后,选择*.dat菜单,就出现了如图2-12所示的效果。
图2-12 文件筛选运行结果
此时虽然把dat文件筛选出来,但是在菜单上并没有明显地提示目前的筛选结果。我们现在添加这个功能。在窗体载入的时候,默认勾选显示全部文件(见图2-13)。修改代码如下:
Private Sub Form_Load() Me.mAllFile.Checked = True End Sub
图2-13 初始化的文件全选
在选择显示全部文件时,其勾选状态为真,其他类型文件勾选状态为假。
Private Sub mAllFile_Click() Me.FileList.Pattern = "*.*" Me.mAllFile.Checked = True Me.mTxtFile.Checked = False Me.mDatFile.Checked = False End Sub
在选择显示dat文件时,其勾选状态为真,其他类型文件勾选状态为假。
Private Sub mDatFile_Click() Me.FileList.Pattern = "*.dat" Me.mAllFile.Checked = False Me.mTxtFile.Checked = False Me.mDatFile.Checked = True End Sub
在选择显示txt文件时,其勾选状态为真,其他类型文件勾选状态为假(见图2-14),代码如下:
Private Sub mTxtFile_Click() Me.FileList.Pattern = "*.txt" Me.mAllFile.Checked = False Me.mTxtFile.Checked = True Me.mDatFile.Checked = False End Sub
图2-14 选择txt文件