动态生成菜单项目

假定在窗口的编辑菜单中,有一个选择列的命令,单击该命令能自动列出当前表所有的列名,单击某个列名,能自动定位到对应的列:

设计步骤:

1、在窗口的菜单事件ItemMouseEnter中加上代码:

If e.StripItem.Text = "选择列" Then
    e.StripItem.Items.Clear() '清除原来的项目
    For Each c As Col In CurrentTable.Cols
       
e.StripItem.Items.Add("Col_" & c.Name, c.Name, "", StripItemTypeEnum.MenuItem)
   
Next
End
If

ItemMouseEnter事件在鼠标进入菜单项目时执行,这样鼠标每次进入“选择列”项目时,就会自动针对当前表的所有列,分别生成一个菜单项目。

Items的Add方法语法是:

Add(Name, Text, ImageFile, Type, Delimiter)

Name:      指定项目名称
Text:      指定项目标题
ImageFile: 指定项目的图标文件
Type:      指定项目的类型,
StripItemTypeEnum类型,包括MenuItemButton LabelSplitButton四个候选值。
Delimiter: 可选参数,逻辑型,是否在该项目前面插入一个分割条。

提示:为了便于编写代码,动态增加的项目通常应该统一的约定字符开头,我们这里约定的开头字符是“Col_”

2、在窗口的菜单事件ItemClick中加上代码:

If e.StripItem.Name.StartsWith("Col_") Then '如果菜单项目用约定的字符开头
    Dim idx As Integer = CurrentTable.Cols(e.StripItem.Text).Index
    CurrentTable.Select(CurrentTable.RowSel,idx)

End
If

任务完成,整个过程不过10行代码而已。


本页地址:http://www.foxtable.com/webhelp/topics/3117.htm