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对象引用。