- 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编者代码
热度:470 发布时间:2016-05-05 06:05:58.0
相关解决方案
- C# ArcEngine 实现点击因素高亮并弹出其属性
- 定做 ArcEngine 要素编辑工具
- c# ArcEngine ISymbologyControlEvents_OnStyleClassChangedEvent的e属性强制转换有关问题
- arcengine 准确绑定办法
- ArcEngine(C#)怎么获取与某个要素相邻的要素(比如网格中和某个多边形相邻的多边形)(用拓扑?)
- ArcEngine 9.2 安装完成之后,在VS2005中如何没有相关的引用呢?随便打开一个例子就会报错说引用无效
- [ArcEngine+C#]IRandomColorRamp类生成颜色有关问题
- ArcEngine+C# 程序发布的有关问题
- C# +ArcEngine+ENVI IDE开发报错问题
- ArcEngine 渲染的使用
- Arcengine-点图层的创建
- ArcEngine 图层无闪烁刷新
- ArcEngine Duplicate Labels(同名标注)不显示问题解决思路
- ArcEngine 鹰眼功能C#实现
- ArcEngine GroupLayer监听图层改变