Previous topicNext topic
Help > 开发指南 > 窗体开发 > 控件参考 > 控件参考 > 菜单 >
SmTreeViewMenu(Sm目录树菜单)

SmTreeViewMenu(Sm目录树菜单)

SmTreeViewMenu被用来设计做目录树的常用控制菜单的。我们可以用来绑定一个实现ITreeView的类来实现对目录树的常规操作。

我们可以设置一下“可见按钮(VisibleButtons)”属性,来决定哪些系统默认菜单命令显示出来。

我们还可以设置一下菜单的“绑定目录树(TreeView)”属性来绑定一下目录树。虽然SmTreeViewMenu是继承自GridMenuBase,但是当前这个菜单主要是针对目录树的,所以用来绑定表的这个BaseGrid属性就没有什么用了。我们可以绑定SmEditTreeGrid和SmTreeView两种“目录树”,因为他们都实现了ITreeView接口。绑定完目录树后,我们就得到了一个不需要写任何代码就可以直接使用的菜单了。

 

我们有一个SmTreeViewMenuNames类,里面记录了每种系统菜单所对应的C1Command的名称,方便我们方便快速地定位相应的菜单,然后进行状态变更,比如隐藏、禁用等等操作。每个属性返回的就是命令的名称。

系统菜单命令清单

名称 命令名称 文本
CheckAllNode cmdSelectAll 全选
CreateNextLevelNode cmdNextLevel 新增子级
CreateSameLevelNode cmdSameLevel 新增同级
DeleteNode cmdDelete 删除
MoveDown cmdDown 下移
MoveLeft cmdLeft 左移
MoveRight cmdRight 右移
MoveUp cmdUp 下移
Redo cmdRedo 重做
Refresh cmdRefresh 刷新
ReverseCheckAllNode cmdUnSelect 反选
Save cmdSave 保存
Undo cmdUndo 撤消

事件名称 说明
BeforeMenuCommandClick 点击菜单之前触发。
MenuCommandClick 点击菜单之后触发。

这两个事件本来是不需要重新拿出来说的,但是因为它们的e参数变更了,所以就单独再说一下。e参数类型为TreeViewMenuClickArgs,相应的参数如下:

TreeView:ITreeView类型,返回当前菜单绑定的目录树对象。

CallerLink:C1CommandLink类型,返回当前菜单中C1CommandLink对象的引用。

Cancel:是否取消后面菜单命令的执行。通过此属性我们可以控制一些系统默认命令的执行与否。比如我们可以针对BaseGridMenu菜单中系统自带的“打印”命令进行修改默认行为。在执行打印之前先判断一下某个条件是否符合,如果不符合条件就是弹出一个提示框给用户,然后将此Cancel属性设置为True,中断系统命令的继续执行。

ClickSource:ClickSourceEnum枚举类型,此枚举的成员用于确定ClickEventArgs类中ClickSource属性的值。

Command:C1Command类型,返回当前菜单执行的C1Command对象引用。