Chinaunix首页 | 论坛 | 博客
  • 博客访问: 148827
  • 博文数量: 75
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 749
  • 用 户 组: 普通用户
  • 注册时间: 2013-11-19 11:38
文章分类
文章存档

2014年(38)

2013年(37)

我的朋友

分类: C#/.net

2014-01-10 11:44:53

  用户有时候想要将一组撤销和重做来作为一个单一的操作,提供了CompositeCmd类来帮助用户实现这样的需求。CompositeCmd对象作为其他派生命令对象的一个容器,当撤销或是重做包含在一个复合命令中时,所有的子命令就将会表现出撤销或是重做。

    要添加一个命令老调用AddSubCmd方法,调用执行方法来执行包含在复合中的所有的子命令,子命令会被按照原来的被添加到容器中的顺序执行或是重做,并会被以相反的顺序被撤销。

    通常FlowChart.NET会隐式的产生命令对象以便于用户响应或是方法调用,并且在历史队列中自动的记录。你不能直接的访问这些命令,以及通过AddSubCmd添加它们到一个复合中。

// Implicitly created undo records will be saved here
CompositeCmd composite = diagram.UndoManager.StartComposite("Create group");
 
// Call methods that create undo records
ShapeNode node1 = diagram.Factory.CreateShapeNode(0, 0, 30, 30);
ShapeNode node2 = diagram.Factory.CreateShapeNode (0, 0, 15, 15);
Group g = diagram.Factory.CreateGroup(node1);
g.AttachToCorner(node2, 0);
 
// This goes to the active composite too
ChangeItemCmd change = new ChangeItemCmd(node2, "");
node2.Locked = true;
change.Execute();
 
// Save the active composite in history
composite.Execute();

阅读(1804) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~