資源簡介
提供ArcMap Add-In tool 工具開發的示例,調用方法,on_actived
代碼片段和文件信息
using?System;
using?System.Collections.Generic;
using?System.Text;
using?System.IO;
using?ESRI.ArcGIS.Carto;
using?ESRI.ArcGIS.Geodatabase;
using?ESRI.ArcGIS.Geometry;
using?ESRI.ArcGIS.esriSystem;
using?ESRI.ArcGIS.framework;
using?ESRI.ArcGIS.Display;
using?ESRI.ArcGIS.Editor;
using?System.Windows.Forms;
using?System.IO;
namespace?validatechange
{
????public?class?ChangeType00_Tool?:?ESRI.ArcGIS.Desktop.AddIns.Tool
????{
????????IMap?pMap?=?null;
????????//IFeaturelayer?pFtlyr?=?null;?//待操作的圖層??
????????IEditor?_Editor;
????????public?ChangeType00_Tool()
????????{
????????????UID?eUID?=?new?UIDClass();
????????????eUID.Value?=?“esriEditor.Editor“;
????????????_Editor?=?ArcMap.Application.FindExtensionByCLSID(eUID)?as?IEditor;
????????????if?(_Editor.EditState?!=?esriEditState.esriStateEditing)
????????????{
????????????????Enabled?=?false;
????????????????return;
????????????}
????????????else
????????????{
????????????????Enabled?=?true;
????????????}
????????}
????????protected?override?void?OnUpdate()
????????{
????????????if?(ArcMap.Application?!=?null)
????????????{
????????????????UID?eUID?=?new?UIDClass();
????????????????eUID.Value?=?“esriEditor.Editor“;
????????????????_Editor?=?ArcMap.Application.FindExtensionByCLSID(eUID)?as?IEditor;
????????????????if?(_Editor.EditState?!=?esriEditState.esriStateEditing)
????????????????{
????????????????????Enabled?=?false;
????????????????????return;
????????????????}
????????????????else
????????????????{
????????????????????Enabled?=?true;
????????????????}
????????????}??
????????}
??????????protected?override?void?onkeyup(KeyEventArgs?arg)??
????????{??
????????????//if?(arg.KeyCode?==?System.Windows.Forms.Keys.Escape)??
????????????//????ArcMap.Application.CurrentTool?=?null;??
????????}??
??
????????protected?override?void?onmousedown(MouseEventArgs?arg)??
????????{
???????????//?MessageBox.Show(“aa“);
????????}
????????protected?override?void?onactivate()
????????{
????????????//對手工修改過的要素要臨時標記
????????????string?TempFolder?=?@“C:\ChangeTypeTempData“;
????????????if?(!Directory.Exists(TempFolder))
????????????{
????????????????Directory.CreateDirectory(TempFolder);
????????????}
????????????string?Recprdfilepath?=?TempFolder?+?“\\temprecord.txt“;
???????????
???????????//?MessageBox.Show(“aba“);
????????????IEnumFeature?getselfeatures?=?getSelectedFeature();?//判斷是否有選取的要素
????????????if?(getselfeatures?!=?null)
????????????{?
????????????????//首先判斷是否含有changetype字段
????????????????IFeature?feature?=?getselfeatures.Next();
????????????????if?(feature?==?null)
????????????????????return;
????????????????IFeatureClass?pfeacls?=?feature.Class?as?IFeatureClass;
????????????????if?(pfeacls.FindField(“ChangeType“)?0)?//如果沒有changetype字段,返回
????????????????????return;
????????????????_Editor.StartOperation();
????????????????//IDataset?dataset?=?(IDataset)pfeacls;
????????????????//IWorkspace?workspace?=?dat
評論
共有 條評論