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

摘要:
//开始定义工具栏IOperationStack operationStack=new ControlsOperationStackClass();axUndoRedoToolbar.SetBuddyControl(mainMapControl.Object);axUndoRedoToolbar.Hide();

原文地址: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. }  

免责声明:文章转载自《AE二次开发技巧之撤销、重做》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇python找出字典中value最大值的几种方法浅谈银行数据仓库:数据集市建模思路 ——监管报送项目的数据集市建模实践下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

C语言Windows程序开发—Windows窗口样式与常用控件样式【第04天】

(一)Windows窗口(MDICLIENT)样式介绍 1 /*Windows窗口样式 */ 2 WS_BORDER //带有边框的窗口 3 WS_CAPTION //带有标题栏的窗口 4 WS_CHILD //子窗口 5 WS_CLIPCHILDREN /...

jQuery动画效果

jQuery提供的一组网页中常见的动画效果,这些动画是标准的、有规律的效果;同时还提供给我们了自定义动画的功能。 显示动画 方式一: $("div").show(); 解释:无参数,表示让指定的元素直接显示出来。其实这个方法的底层就是通过内部封装了display: block;实现的。 <body> <div></div...

jQuery(二)

二、jQuery的选择器 我们以前在CSS中学习的选择器有: 今天来学习一下jQuery 选择器。 jQuery选择器是jQuery强大的体现,它提供了一组方法,让我们更加方便的获取到页面中的元素。 1、jQuery 的基本选择器 代码如下: <!DOCTYPE html> <html lang="en"> <...

从C#中传递object到lua的一个问题

本来我是想从C#中把form对象传递到Lua里面去,然后在Lua中调用form下面的各个组件,比如textbox、button等,从而实现在Lua中控制C#中form界面的布局。 但是发现如下问题: 1 //Form1.cs 2 3 class Form1 4 { 5 private System.Windows.Forms.TextBox tex...

vue中的父子组件之间的通信--新增、修改弹框

在一个vue页面中有时候内容会很多,为了方便编写查看,可以分为多个子组件,最后在父组件中引入对应的子组件即可。 下面这个是父子组件通信中的一个具体实例:新增、修改弹框。子组件中主要写了关于新增、修改的弹框, 子组件: 1.弹框: <div class="newDocuments"> <div class="newDocuments_...

Android单元测试

Android提供了上面的多个测试类,可以允许我们对于单个方法、Activity、Service、Application等多个对象进行测试,单元测试可以很方便的让我们对代码进行测试,并且方便对重构后的代码进行检查。本篇将简要的讲解如何对Android中的对象进行测试。 一、准备工作 首先在manifest.xml中添加权限和相关配置代码。 在Applic...