AE二次开发技巧之撤销、重做

原文地址:http://www.cnblogs.com/wylaok/articles/2363208.html

可以把AE自带的重做、撤销按钮或工具添加到axToolBarControl上,再把axToolBarControl工具条隐藏,同时,在自定义的工具条上新建对应的按钮,按下此按钮实际触发的是AE自带的按钮功能!如在基础平台上的撤销!

代码如下:

  1. //开始定义工具条  
  2. IOperationStack operationStack = new ControlsOperationStackClass();  
  3. axUndoRedoToolbar.OperationStack = operationStack;  
  4. axUndoRedoToolbar.SetBuddyControl(mainMapControl.Object);  
  5. axUndoRedoToolbar.Hide();  
  6. //撤销  
  7. private void tlBtnUndo_Click(object sender, EventArgs e)  
  8. {  
  9.     IOperationStack operationStack = axUndoRedoToolbar.OperationStack;  
  10.     //Do the following to undo the previous operation on the stack.  
  11.     try  
  12.     {  
  13.         if (operationStack.UndoOperation != null)  
  14.         {  
  15.             operationStack.Undo();//调用AE自带重做指令  
  16.         }  
  17.         else  
  18.         {  
  19.             MessageBox.Show("没有可撤消的操作!");  
  20.         }  
  21.     }  
  22.     catch (Exception ex)  
  23.     {  
  24.         MessageBox.Show(ex.ToString(), "无可撤消操作");  
  25.     }  
  26. }  
  27.   
  28. //重做  
  29. private void tlBtnRedo_Click(object sender, EventArgs e)  
  30. {  
  31.     IOperationStack operationStack = axUndoRedoToolbar.OperationStack;  
  32.     try  
  33.     {  
  34.         if (operationStack.RedoOperation == null)  
  35.         {  
  36.             MessageBox.Show("没有可重做的操作!");  
  37.         }  
  38.         else  
  39.         {  
  40.             operationStack.Redo();  
  41.         }  
  42.     }  
  43.     catch (Exception ex)  
  44.     {  
  45.         MessageBox.Show(ex.ToString(), "无可重做操作");  
  46.     }  
  47. }  
原文地址:https://www.cnblogs.com/94cool/p/4363203.html