Arcengine编辑代码

  1. using System;
  2. using System.Drawing;
  3. using System.Collections;
  4. using System.ComponentModel;
  5. using System.Windows.Forms;
  6. using System.Data;
  7. using System.IO;
  8. using System.Runtime.InteropServices;
  9. using ESRI.ArcGIS.esriSystem;
  10. using ESRI.ArcGIS.Carto;
  11. using ESRI.ArcGIS.Controls;
  12. using ESRI.ArcGIS.ADF;
  13. using ESRI.ArcGIS.SystemUI;
  14. namespace Demo2
  15. {
  16. public sealed partial class MainForm : Form
  17. {
  18. #region private members
  19. private IMapControl3 m_mapControl = null;
  20. private string m_mapDocumentName = string.Empty;
  21. private IToolbarMenu m_toolbarMenu;
  22. #endregion
  23. #region class constructor
  24. public MainForm()
  25. {
  26. InitializeComponent();
  27. }
  28. #endregion
  29. private void MainForm_Load(object sender, EventArgs e)
  30. {
  31. m_mapControl = (IMapControl3) axMapControl1.Object;
  32. //Load the Data into the MapControl1
  33. string sFilePath = @"C:ConferenceDataDemo Editing.mxd";
  34. if (m_mapControl.CheckMxFile(sFilePath))
  35. {
  36. m_mapControl.LoadMxFile(sFilePath, null, null);
  37. }
  38. else
  39. MessageBox.Show(sFilePath + " is not a valid ArcMap document");
  40. #region setup toolbar visibility
  41. menuSaveDoc.Enabled = false;
  42. editingToolStripMenuItem.Checked = true;
  43. inkToolStripMenuItem.Checked = false;
  44. GenericToolStripMenuItem.Checked = false;
  45. navigationToolStripMenuItem.Checked = true;
  46. axEditorToolbar.Visible = true;
  47. axNavigationToolbar.Visible = true;
  48. axExtraEditorToolbar.Visible = false;
  49. axInkToolbar.Visible = false;
  50. #endregion
  51. //EditorToolbar
  52. axEditorToolbar.AddItem("esriControls.ControlsEditingEditorMenu", 0, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);
  53. axEditorToolbar.AddItem("esriControls.ControlsEditingEditTool", 0, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);
  54. axEditorToolbar.AddItem("esriControls.ControlsEditingSketchTool", 0, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);
  55. axEditorToolbar.AddItem("esriControls.ControlsEditingTargetToolControl", 0, -1, true, 0, esriCommandStyles.esriCommandStyleIconOnly);
  56. axEditorToolbar.AddItem("esriControls.ControlsEditingTaskToolControl", 0, -1, true, 0, esriCommandStyles.esriCommandStyleIconOnly);
  57. axEditorToolbar.AddItem("esriControls.ControlsEditingAttributeCommand", 0, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);
  58. axEditorToolbar.AddItem("esriControls.ControlsEditingSketchPropertiesCommand", 0, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);
  59. axEditorToolbar.AddItem("esriControls.ControlsUndoCommand", 0, -1, true, 0, esriCommandStyles.esriCommandStyleIconOnly);
  60. axEditorToolbar.AddItem("esriControls.ControlsRedoCommand", 0, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);
  61. //ExtraEditorToolbar
  62. axExtraEditorToolbar.AddItem(new EditPropertiesCmd(), 0, -1, false, 0, esriCommandStyles.esriCommandStyleTextOnly);
  63. axExtraEditorToolbar.AddItem("esriControls.ControlsUndoCommand", 0, -1, true, 0, esriCommandStyles.esriCommandStyleIconOnly);
  64. axExtraEditorToolbar.AddItem("esriControls.ControlsRedoCommand", 0, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);
  65. axExtraEditorToolbar.AddItem("esriControls.ControlsEditingCutCommand", 0, -1, true, 0, esriCommandStyles.esriCommandStyleIconOnly);
  66. axExtraEditorToolbar.AddItem("esriControls.ControlsEditingPasteCommand", 0, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);
  67. axExtraEditorToolbar.AddItem("esriControls.ControlsEditingCopyCommand", 0, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);
  68. axExtraEditorToolbar.AddItem("esriControls.ControlsEditingClearCommand", 0, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);
  69. //Create a popup menu
  70. m_toolbarMenu = new ToolbarMenuClass();
  71. m_toolbarMenu.AddItem("esriControls.ControlsEditingSketchContextMenu", 0, 0, false, esriCommandStyles.esriCommandStyleTextOnly);
  72. //Share the Command Pool
  73. m_toolbarMenu.CommandPool = axEditorToolbar.CommandPool;
  74. }
  75. #region Main Menu event handlers
  76. private void menuNewDoc_Click(object sender, EventArgs e)
  77. {
  78. //execute New Document command
  79. ICommand command = new CreateNewDocument();
  80. command.OnCreate(m_mapControl.Object);
  81. command.OnClick();
  82. }
  83. private void menuOpenDoc_Click(object sender, EventArgs e)
  84. {
  85. //execute Open Document command
  86. ICommand command = new ControlsOpenDocCommandClass();
  87. command.OnCreate(m_mapControl.Object);
  88. command.OnClick();
  89. }
  90. private void menuSaveDoc_Click(object sender, EventArgs e)
  91. {
  92. //execute Save Document command
  93. if (m_mapControl.CheckMxFile(m_mapDocumentName))
  94. {
  95. //create a new instance of a MapDocument
  96. IMapDocument mapDoc = new MapDocumentClass();
  97. mapDoc.Open(m_mapDocumentName, string.Empty);
  98. //Make sure that the MapDocument is not readonly
  99. if (mapDoc.get_IsReadOnly(m_mapDocumentName))
  100. {
  101. MessageBox.Show("Map document is read only!");
  102. mapDoc.Close();
  103. return;
  104. }
  105. //Replace its contents with the current map
  106. mapDoc.ReplaceContents((IMxdContents)m_mapControl.Map);
  107. //save the MapDocument in order to persist it
  108. mapDoc.Save(mapDoc.UsesRelativePaths, false);
  109. //close the MapDocument
  110. mapDoc.Close();
  111. }
  112. }
  113. private void menuSaveAs_Click(object sender, EventArgs e)
  114. {
  115. //execute SaveAs Document command
  116. ICommand command = new ControlsSaveAsDocCommandClass();
  117. command.OnCreate(m_mapControl.Object);
  118. command.OnClick();
  119. }
  120. private void menuExitApp_Click(object sender, EventArgs e)
  121. {
  122. //exit the application
  123. Application.Exit();
  124. }
  125. #endregion
  126. //listen to MapReplaced evant in order to update the statusbar and the Save menu
  127. private void axMapControl1_OnMapReplaced(object sender, IMapControlEvents2_OnMapReplacedEvent e)
  128. {
  129. //get the current document name from the MapControl
  130. m_mapDocumentName = m_mapControl.DocumentFilename;
  131. //if there is no MapDocument, diable the Save menu and clear the statusbar
  132. if (m_mapDocumentName == string.Empty)
  133. {
  134. menuSaveDoc.Enabled = false;
  135. statusBarXY.Text = string.Empty;
  136. }
  137. else
  138. {
  139. //enable the Save manu and write the doc name to the statusbar
  140. menuSaveDoc.Enabled = true;
  141. statusBarXY.Text = Path.GetFileName(m_mapDocumentName);
  142. }
  143. }
  144. private void axMapControl1_OnMouseMove(object sender, IMapControlEvents2_OnMouseMoveEvent e)
  145. {
  146. statusBarXY.Text = string.Format("{0}, {1}  {2}", e.mapX.ToString("#######.##"), e.mapY.ToString("#######.##"), axMapControl1.MapUnits.ToString().Substring(4));
  147. }
  148. private void editingToolStripMenuItem_Click(object sender, EventArgs e)
  149. {
  150. if (axEditorToolbar.Visible == false)
  151. {
  152. axEditorToolbar.Visible = true;
  153. editingToolStripMenuItem.Checked = true;
  154. }
  155. else
  156. {
  157. axEditorToolbar.Visible = false;
  158. editingToolStripMenuItem.Checked = false;
  159. }
  160. }
  161. private void inkToolStripMenuItem_Click(object sender, EventArgs e)
  162. {
  163. if (axInkToolbar.Visible == false)
  164. axInkToolbar.Visible = true;
  165. else
  166. axInkToolbar.Visible = false;
  167. }
  168. private void navigationToolStripMenuItem_Click(object sender, EventArgs e)
  169. {
  170. if (axNavigationToolbar.Visible == false)
  171. axNavigationToolbar.Visible = true;
  172. else
  173. axNavigationToolbar.Visible = false;
  174. }
  175. private void bookmarksToolStripMenuItem_Click(object sender, EventArgs e)
  176. {
  177. if (axExtraEditorToolbar.Visible == false)
  178. axExtraEditorToolbar.Visible = true;
  179. else
  180. axExtraEditorToolbar.Visible = false;
  181. }
  182. private void axMapControl1_OnMouseDown(object sender, IMapControlEvents2_OnMouseDownEvent e)
  183. {
  184. if (e.button == 2) m_toolbarMenu.PopupMenu(e.x, e.y, axMapControl1.hWnd);
  185. }
  186. }
  187. }
时间: 2024-10-12 17:09:42

Arcengine编辑代码的相关文章

如何让 Drupal 使用 Wordpress 形式的编辑代码?

如果你曾有过将 Wordpress 网站迁移到 Drupal 的经验,很可能客户会问的第一件事就是如何为 Drupal 添加编辑代码. Wordpress 中的 Shortcodes 插件让使用者可以在内容中添加各种编辑代码,然后在显示时代码会被转换为对应的内容,从而节省一定的编辑工作.例如,想要将 Wordpress 中的相册嵌入到内容中,只需按 [gallery id=”123” size=”medium”] 格式添加编辑代码,这段代码在显示时会被自动转换为对应的相册. 而在 Drupal

设定MyEclipse编辑代码区域文字的大小及非关键字的字体、字形和颜色

设定MyEclipse编辑代码区域文字的大小及非关键字的字体.字形和颜色: Window-->Preferences-->点击General节点-->点击Appearance节点-->Colorsand Font-->点击Basic节点-->选中TextFont-->点击Edit(有的是Change)(或直接双击TextFont)-->设置完毕后点击"确定"-->Apply-->OK操作完成. 实践证明将字体设置为Courie

Xcode8.0 在编辑代码时提示警告 Implicit conversion loses integer precision: 'NSInteger' (aka 'long') to

Implicit conversion loses integer precision: 'NSInteger' (aka 'long') to -Wno-shorten-64-to-32 Xcode8.0 在编辑代码时提示警告 Implicit conversion loses integer precision: 'NSInteger' (aka 'long') to

看多人合作编辑代码

本星期,继上次的单人代码编辑,进而了解多人编辑同一个项目的代码过程. 其中,最为优先的是个人编辑代码的风格.因为是多人合作,个人编辑的代码要不仅自己可以看清楚,同时也要让合作者也能理解你编辑的代码含义.其原则是:简明,易读,无二义性..其中包含着对缩进,行宽的限制,括号,断行,分行,命名,下划线,大小写,注释等的使用. 个人编辑好后,首先要通过代码复审.这又包括自我复审,同伴复审,团队复审等.其目的所在则是:查找代码错误,逻辑错误,算法错误以及潜在错误,发现可改进的地方,再加上相互间交流教育.主

在线编辑代码[django]版本

再国内,做什么都这么吃力.连aliyun 的ssh 都被封这是什么世道,所以做一个在线编辑代码的忙忙碌碌有点粗糙.大家见谅?1. [代码]views.py #-*- coding:utf-8 -*- # jQuery File Tree# Python/Django connector script# By Martin Skou#import osimport urllibfrom django.http import HttpResponsefrom django.shortcuts imp

配置文件编辑和历史文件编辑代码

python代码 def nginxbj(request):     id1 = request.GET['id']      host_list = get_object_or_404(NginxET, pk=id1)     form = HostsListForm(instance=host_list)     action='edit'     page_name="编辑配置文件"     ret = NginxET.objects.values_list('message',

关于WORD里怎样编辑代码好看(技术帖整理)

最近因为弄各种文档,包括课设和工程性文档 对WORD里编辑的格式要求好高~ 为了贴代码好看,百度了一下! 技巧一: 插入一行一列的表格,在表格中写代码 技巧二: 关于程序员用的10大字体(上一篇转载的) word里面常用的有  courier new.lucida console.Consolas 如果开了cleartype用lucida console或者consolas 如果没开cleartype用courier new Lucida Console,10号是个不错的选择~ 我对比了一下co

【JAVA】Eclipse中使用Vim的方式编辑代码

主要用到的是eclim这个插件 官方网站在 eclim.org 通过以下链接介绍的方法进行安装 http://eclim.org/#how-do-i-get-install-it 第一步: 需要jdk1.5以上 gvim7.1以上 eclipse 4.5以上 第二步: 下载eclim的jar包 http://sourceforge.net/projects/eclim/files/eclim/2.5.0/eclim_2.5.0.jar/download 第三步: 运行powershell或者cm

编辑代码或者文档时光标变成了一闪一闪的方块怎么处理?

    敲代码的时候一不小心就会遇到这种情况:         解决办法是按一下insert键即可解决,笔记本上的Ins(insert缩写)键.     根据百科上的说法是这样的:     插入键(Insert key,缩写INS)是电脑键盘的一个键,主要用于在文字处理器切换文本输入的模式.一种为覆盖模式,光标位置新输入字会替代原来的字:另一种为插入模式,新输入的字插入到光标位置,原来的字相应后移.在早期的计算机终端里,如果在覆盖模式,光标会变成一个方块而不是通常的竖线.