Arcengine编辑代码
- using System;
- using System.Drawing;
- using System.Collections;
- using System.ComponentModel;
- using System.Windows.Forms;
- using System.Data;
- using System.IO;
- using System.Runtime.InteropServices;
- using ESRI.ArcGIS.esriSystem;
- using ESRI.ArcGIS.Carto;
- using ESRI.ArcGIS.Controls;
- using ESRI.ArcGIS.ADF;
- using ESRI.ArcGIS.SystemUI;
- namespace Demo2
- {
- public sealed partial class MainForm : Form
- {
- #region private members
- private IMapControl3 m_mapControl = null;
- private string m_mapDocumentName = string.Empty;
- private IToolbarMenu m_toolbarMenu;
- #endregion
- #region class constructor
- public MainForm()
- {
- InitializeComponent();
- }
- #endregion
- private void MainForm_Load(object sender, EventArgs e)
- {
- m_mapControl = (IMapControl3) axMapControl1.Object;
- //Load the Data into the MapControl1
- string sFilePath = @"C:ConferenceDataDemo Editing.mxd";
- if (m_mapControl.CheckMxFile(sFilePath))
- {
- m_mapControl.LoadMxFile(sFilePath, null, null);
- }
- else
- MessageBox.Show(sFilePath + " is not a valid ArcMap document");
- #region setup toolbar visibility
- menuSaveDoc.Enabled = false;
- editingToolStripMenuItem.Checked = true;
- inkToolStripMenuItem.Checked = false;
- GenericToolStripMenuItem.Checked = false;
- navigationToolStripMenuItem.Checked = true;
- axEditorToolbar.Visible = true;
- axNavigationToolbar.Visible = true;
- axExtraEditorToolbar.Visible = false;
- axInkToolbar.Visible = false;
- #endregion
- //EditorToolbar
- axEditorToolbar.AddItem("esriControls.ControlsEditingEditorMenu", 0, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);
- axEditorToolbar.AddItem("esriControls.ControlsEditingEditTool", 0, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);
- axEditorToolbar.AddItem("esriControls.ControlsEditingSketchTool", 0, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);
- axEditorToolbar.AddItem("esriControls.ControlsEditingTargetToolControl", 0, -1, true, 0, esriCommandStyles.esriCommandStyleIconOnly);
- axEditorToolbar.AddItem("esriControls.ControlsEditingTaskToolControl", 0, -1, true, 0, esriCommandStyles.esriCommandStyleIconOnly);
- axEditorToolbar.AddItem("esriControls.ControlsEditingAttributeCommand", 0, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);
- axEditorToolbar.AddItem("esriControls.ControlsEditingSketchPropertiesCommand", 0, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);
- axEditorToolbar.AddItem("esriControls.ControlsUndoCommand", 0, -1, true, 0, esriCommandStyles.esriCommandStyleIconOnly);
- axEditorToolbar.AddItem("esriControls.ControlsRedoCommand", 0, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);
- //ExtraEditorToolbar
- axExtraEditorToolbar.AddItem(new EditPropertiesCmd(), 0, -1, false, 0, esriCommandStyles.esriCommandStyleTextOnly);
- axExtraEditorToolbar.AddItem("esriControls.ControlsUndoCommand", 0, -1, true, 0, esriCommandStyles.esriCommandStyleIconOnly);
- axExtraEditorToolbar.AddItem("esriControls.ControlsRedoCommand", 0, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);
- axExtraEditorToolbar.AddItem("esriControls.ControlsEditingCutCommand", 0, -1, true, 0, esriCommandStyles.esriCommandStyleIconOnly);
- axExtraEditorToolbar.AddItem("esriControls.ControlsEditingPasteCommand", 0, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);
- axExtraEditorToolbar.AddItem("esriControls.ControlsEditingCopyCommand", 0, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);
- axExtraEditorToolbar.AddItem("esriControls.ControlsEditingClearCommand", 0, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);
- //Create a popup menu
- m_toolbarMenu = new ToolbarMenuClass();
- m_toolbarMenu.AddItem("esriControls.ControlsEditingSketchContextMenu", 0, 0, false, esriCommandStyles.esriCommandStyleTextOnly);
- //Share the Command Pool
- m_toolbarMenu.CommandPool = axEditorToolbar.CommandPool;
- }
- #region Main Menu event handlers
- private void menuNewDoc_Click(object sender, EventArgs e)
- {
- //execute New Document command
- ICommand command = new CreateNewDocument();
- command.OnCreate(m_mapControl.Object);
- command.OnClick();
- }
- private void menuOpenDoc_Click(object sender, EventArgs e)
- {
- //execute Open Document command
- ICommand command = new ControlsOpenDocCommandClass();
- command.OnCreate(m_mapControl.Object);
- command.OnClick();
- }
- private void menuSaveDoc_Click(object sender, EventArgs e)
- {
- //execute Save Document command
- if (m_mapControl.CheckMxFile(m_mapDocumentName))
- {
- //create a new instance of a MapDocument
- IMapDocument mapDoc = new MapDocumentClass();
- mapDoc.Open(m_mapDocumentName, string.Empty);
- //Make sure that the MapDocument is not readonly
- if (mapDoc.get_IsReadOnly(m_mapDocumentName))
- {
- MessageBox.Show("Map document is read only!");
- mapDoc.Close();
- return;
- }
- //Replace its contents with the current map
- mapDoc.ReplaceContents((IMxdContents)m_mapControl.Map);
- //save the MapDocument in order to persist it
- mapDoc.Save(mapDoc.UsesRelativePaths, false);
- //close the MapDocument
- mapDoc.Close();
- }
- }
- private void menuSaveAs_Click(object sender, EventArgs e)
- {
- //execute SaveAs Document command
- ICommand command = new ControlsSaveAsDocCommandClass();
- command.OnCreate(m_mapControl.Object);
- command.OnClick();
- }
- private void menuExitApp_Click(object sender, EventArgs e)
- {
- //exit the application
- Application.Exit();
- }
- #endregion
- //listen to MapReplaced evant in order to update the statusbar and the Save menu
- private void axMapControl1_OnMapReplaced(object sender, IMapControlEvents2_OnMapReplacedEvent e)
- {
- //get the current document name from the MapControl
- m_mapDocumentName = m_mapControl.DocumentFilename;
- //if there is no MapDocument, diable the Save menu and clear the statusbar
- if (m_mapDocumentName == string.Empty)
- {
- menuSaveDoc.Enabled = false;
- statusBarXY.Text = string.Empty;
- }
- else
- {
- //enable the Save manu and write the doc name to the statusbar
- menuSaveDoc.Enabled = true;
- statusBarXY.Text = Path.GetFileName(m_mapDocumentName);
- }
- }
- private void axMapControl1_OnMouseMove(object sender, IMapControlEvents2_OnMouseMoveEvent e)
- {
- statusBarXY.Text = string.Format("{0}, {1} {2}", e.mapX.ToString("#######.##"), e.mapY.ToString("#######.##"), axMapControl1.MapUnits.ToString().Substring(4));
- }
- private void editingToolStripMenuItem_Click(object sender, EventArgs e)
- {
- if (axEditorToolbar.Visible == false)
- {
- axEditorToolbar.Visible = true;
- editingToolStripMenuItem.Checked = true;
- }
- else
- {
- axEditorToolbar.Visible = false;
- editingToolStripMenuItem.Checked = false;
- }
- }
- private void inkToolStripMenuItem_Click(object sender, EventArgs e)
- {
- if (axInkToolbar.Visible == false)
- axInkToolbar.Visible = true;
- else
- axInkToolbar.Visible = false;
- }
- private void navigationToolStripMenuItem_Click(object sender, EventArgs e)
- {
- if (axNavigationToolbar.Visible == false)
- axNavigationToolbar.Visible = true;
- else
- axNavigationToolbar.Visible = false;
- }
- private void bookmarksToolStripMenuItem_Click(object sender, EventArgs e)
- {
- if (axExtraEditorToolbar.Visible == false)
- axExtraEditorToolbar.Visible = true;
- else
- axExtraEditorToolbar.Visible = false;
- }
- private void axMapControl1_OnMouseDown(object sender, IMapControlEvents2_OnMouseDownEvent e)
- {
- if (e.button == 2) m_toolbarMenu.PopupMenu(e.x, e.y, axMapControl1.hWnd);
- }
- }
- }
Arcengine编辑代码的更多相关文章
- VS2010在运行状态下编辑代码
在VS2010环境下,当程序处于调试运行状态时,编辑代码会出现下图提示框: 这就给边编辑代码边查看程序运行效果带来不便. 解决方法:在程序没有运行的时候,打开菜单“工具”——>“选项”——> ...
- 如何让 Drupal 使用 Wordpress 形式的编辑代码?
如果你曾有过将 Wordpress 网站迁移到 Drupal 的经验,很可能客户会问的第一件事就是如何为 Drupal 添加编辑代码. Wordpress 中的 Shortcodes 插件让使用者可以 ...
- VS编辑代码的时候,都会自动在资源浏览器里将文件所在项目展开
如何设置VS编辑代码的时候,都会自动在资源浏览器里将文件所在项目展开 工具-选项-项目和解决方案-常规-在解决方案资源管理器中跟踪活动项(C)
- 在线编辑代码[django]版本
再国内,做什么都这么吃力.连aliyun 的ssh 都被封这是什么世道,所以做一个在线编辑代码的忙忙碌碌有点粗糙.大家见谅1. [代码]views.py #-*- coding:utf-8 -*- ...
- 【01】在 Github 上编辑代码
[01]在 Github 上编辑代码 当你使用 GitHub,看一些文件(任何的文本文件或者仓库),能看到一个顶部右侧有一个小铅笔图标.点击即可编辑文档. 完成后,按照提示点击「Propose fil ...
- 用vscode编辑代码
本教程只适用于用vs code编辑代码,并不是用vs code调试,调试还是老实用keil吧,干货开始.... 废话不多说 第一步:去微软下载一个vs code,顺带百度了解一下vs code强大的功 ...
- 安装Pycharm(方便编辑代码的IDE(编辑器))以及 使用Pycharm新建项目
安装Pycharm(方便编辑代码的IDE(编辑器))以及 使用Pycharm新建项目 一.下载安装Pycharm 首先要下载Pycharm这个软件,官网的下载地址是: http://www.jetbr ...
- Eclipse里编辑代码,进度条出现“Remote System Explorer Operation”解决方法
Eclipse里编辑代码,进度条出现"Remote System Explorer Operation",导致Eclipse有卡顿. 解决方法: Eclipse -> Pre ...
- ArcEngine编辑保存错误:Unable to create logfile system tables
通过ArcEngine对多个SDE中多个图层进行批量编辑处理,其中有部分图层在结束编辑的时候出现错误提示(部分图层可以,只有两个数据较多的图层保存失败). 错误信息:Unable to create ...
随机推荐
- linux安装应用程序
实验:为 Linux 主机安装应用程序 环境:vmware workstation 14 . redhad-server-6.4 需求:1.使用 RPM 包的方式安装 Mozilla Firef ...
- (转)mysql explain详解
原文:http://www.cnblogs.com/xuanzhi201111/p/4175635.html http://yutonger.com/18.html http://www.jiansh ...
- windows server 2016安装docker
最近微软发布了windows server 2016,并原生支持docker,本文通过一系列的步骤,来学习怎么在windows server 2016安装docker. 1.下载 windows se ...
- Java之集合(三)ArrayList
转载请注明源出处:http://www.cnblogs.com/lighten/p/7291339.html 1.前言 本章介绍List中最常用的一个类--ArrayList.在第一章中已经介绍了Li ...
- oracle_jdbc_Query
本例子程序是根据马士兵老师所讲+自己的注释.写的比较全面,特别是最后释放资源的代码. package com.ayang.jdbc; import java.sql.*; public class T ...
- Linux的帮助文档命令
Linux的帮助文档命令 1.man page man是manual(操作手册)的简写,使用方式: man [指令] man date 在显示的内容中查找内容: / + 搜索你的关键字 上下左右键来查 ...
- springcloud 熔断处理
在springcloud微服务中,有时候一个服务挂了,我们需要友好的提示,此时我们在api网关路由上做一下过滤,进行友好的提示处理. 代码如下: import com.fasterxml.jackso ...
- sparkthriftserver启动及调优
Sparkthriftserver启用及优化 1. 概述 sparkthriftserver用于提供远程odbc调用,在远端执行hive sql查询.默认监听10000端口,Hiveserver2默 ...
- PowerDesigner中利用数据库表反向生成PDM(jdk必须是32位)
第一步:创建一个空的PDM模型(选择对应的DBMS):File-->New 第二步:选择DataBase-->Configure Connections,配置即将连接的数据库 第三步:选择 ...
- [Codeforces Round#488]Div.2
总结 这是我无聊透顶肝到三点半的一场 cf ,结果还真够无聊的 这套题涵盖了英语题,语文题,模拟题.注重考查了选手的英语素养能力,语文阅读能力和精湛的模拟和枚举能力.是不可多得的一套好题. 没什么单独 ...