ArcGIS Add-in——自动保存编辑

需求:由于初次使用ArcGIS编辑器不习惯、数据量大造成经常程序未响应、计算机断电等因素,造成编辑的数据没有保存,影响了生产效率,本人根据草色静然的博文,总结了自动保存编辑的实现方法。

分析:自动保存,用到的肯定是计时器,一般都是用微软件的Timer控件,它的Elapsed 事件指达到间隔时发生(由Interval属性指定),所以基本步骤是:

(1)声明变量;

(2)写Elapsed事件,并在事件中写自动保存的功能;

(3)在OnClick调用Elapsed事件,触发Timer。

要自动保存编辑内容,得获取编辑器,知道当前工作空间然后调用StopEditing和StartEditing方法。这些具体的类和方法的使用,得查看ESRI帮助文档了。

这里需要注意的是Editor的获取,获取方法可参考:http://www.cnblogs.com/liweis/p/4582176.html ,但我现在想描述的问题是,获取的代码写在哪里的问题。默认情况下,新建AddIn程序,它会在Config.Designer新建一个ArcMap静态类,类里通过GetHook方法获取了Application、Document、ThisApplication、DockableWindowManager、Events五个对象,那当然根据需要,我们可以向其中添加Editor对象。但是如果我再在程序中添加Addin组件时,它会重写这个类到默认状态,以前自定义的就没有了。原因:凡是修改了Config.esriaddinx,Config.Designer.cs的内容都会恢复到默认,而且引用ArcGIS Desktop Add-In的复制本地属性会变成F,所以,建议,将这些自定义的内容不要放在Config.Designer.cs中。

接下来,我想把这个按钮功能放在工具条上,调出工具条即可。网上没有搜索到这样的例子,自己摸索一下,终于实现 了:其实也很简单,在现有基础上添加新建项,选择 Add-in Command Container,在弹出的向导中选择工具条,设置工具条名称(C aption),添加条目,选择已写好的Button即可。

我们来看一下它 标签代码,非常清楚明白。

时间: 2024-11-12 04:01:15

ArcGIS Add-in——自动保存编辑的相关文章

arcgis的mxd数据源检查,和自动保存为相对路径

arcgis的mxd数据源(含矢量和影像)检查,和,检查是否为相对路径,自动保存为相对路径 ArcGIS10.0和ArcGIS10.2.2测试通过 运行日志类似: 文件:F:\RS和GIS一体化\data\3.坐标系统\数据接边.mxd的图层:等高线修改,找不到矢量数据源文件:F:\RS和GIS一体化\data\3.坐标系统\数据接边.mxd的图层:等高线,找不到矢量数据源文件:F:\RS和GIS一体化\data\3.坐标系统\错误1.mxd的图层:ZD,找不到矢量数据源文件:F:\RS和GIS

用汇编语言给XP记事本添加“自动保存”功能 good

[文章标题]: 用汇编语言给XP记事本添加“自动保存”功能 [文章作者]: newjueqi [作者邮箱]:[email protected] [作者QQ]:190678908 [使用工具]: OD, LordPE,eXeScope[操作平台]: XP-SP2[作者声明]: 本人平时一般的文字处理都是用记事本(用Word好像大材小用了),电脑自从拿去大修后有时候会莫名其妙的重启,弄得经常重写(本人常常忘记保存^-^),于是想给记事本增加类似于Word的自动保存功能,以图个方便.失误之处敬请诸位大

unity3d 自动保存

using UnityEngine; using UnityEditor; using System; public class AutoSave : EditorWindow { private bool autoSaveScene = true; private bool showMessage = true; private bool isStarted = false; private int intervalScene; private DateTime lastSaveTimeSce

【转载】Unity插件研究院之自动保存场景

原文: http://wiki.unity3d.com/index.php?title=AutoSave  最近发现Unity老有自动崩溃的BUG. 每次崩溃的时候由于项目没有保存所以Hierarchy视图游戏对象与游戏资源的关系就会丢失.所以想到自动保存场景. 本来想自己写一个这样的脚本,但是发现维基百科上已经有了... using UnityEngine; using UnityEditor; using System; public class AutoSave : EditorWindo

怎样关掉EDIUS 8中的自动保存?

EDIUS软件的版本从6到现在的8,都开始默认每间隔3分钟自动保存一次所做的工程文件,有的小伙伴可能会觉得有些烦扰,想要关掉EDIUS自动保存设置,要怎么做呢?下面,看小编给你们解决烦恼. 若有疑问可直接访问:http://www.ediuschina.com/changjian/edius-guan-zidongbaocun.html 1.点击菜单栏中的设置,选择“用户设置”,打开“用户设置”对话框,从“应用”选项卡中找到“工程文件”,在下面一点可以看到“自动保存”的一系列选项,将目标下的“工

WordPress禁止版本修订历史、自动保存和自动草稿最新方法汇总

提醒:我这里汇总的方法有一些只支持以前老版本的WordPress,对于新版本的WordPress,有些功能是不支持的,所以操作前请做好备份.我的WordPress版本目前是4.3.1,我会在我测试有效的后面注明. WordPress的版本修订历史(revision).自动保存(autosave)和自动草稿(auto-draft)功能会非常讨厌的增加文章ID的数字,会造成连续的两篇文章,ID数值可能会相差很多,让我们这些希望文章ID连续的人感到非常不舒服. 网上有很多的教程,但是有的说的不全面,有

使用 Ajax自动保存草稿

在博客.论坛等的编辑框上加入自动保存功能,这已经是标准配置了,使用 jQuery会很方便. <script type="text/javascript"> //自动保存函数 function AutoSave() { var biaoti = $("#biaoti_aep").val(); var neirong = $("#neirong_aep").val(); $("#tixing").empty(); $(

vim通过事件驱动实现实时自动保存功能

有些时候,在用vim编辑文件的,由于种种原因忘记或者来不及手动保存(在末行模式下 :w!)而导致花费大量心血所做的修改丢失,不得不重新创作,本人也亲自遇到过3次,本着事不过三的原则,决定研究研究vim的自动保存功能. 首先尝试了<VIM 自动保存的最佳方案?http://segmentfault.com/q/1010000000592658>一直不成功,知道原因的同学欢迎指教. 其次尝试了https://github.com/907th/vim-auto-save,下面说一下方法: ? wge

sublime text3 实现自动保存

使用sublime text3 ,觉得不错,不过有一个小问题,就是因为以前使用webstrom,webstrom实现了自动保存,也就是你在编写完一个文件后,不需要自己去手动的保存就可以实现自动保存,后来到了sublime这里,每次都需要自己实现保存,在调试的时候,有时候总是忘了保存,需要重新去保存文件,非常的不方便. sublime是编辑神器,怎么可能没有这种插件呢! 1,使用package control 安装auto-save插件就可以. 2,安装完成插件之后,你需要打开Preference