动态生成菜单项目
假定在窗口的编辑菜单中,有一个选择列的命令,单击该命令能自动列出当前表所有的列名,单击某个列名,能自动定位到对应的列:
设计步骤:
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类型,包括MenuItem、Button、
Label、SplitButton四个候选值。
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行代码而已。