About the Feature editing with the control commands Sample
[C#]
FeatureEditing.cs
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using ESRI.ArcGIS.Controls;
using ESRI.ArcGIS.esriSystem;
using ESRI.ArcGIS.SystemUI;
using ESRI.ArcGIS;
namespace EditPropertiesDialog
{
public class Form1 : System.Windows.Forms.Form
{
private IToolbarMenu m_toolbarMenuSketch;
private IToolbarMenu m_toolbarMenuVertex;
private ICommandPool m_CommandPool;
private ESRI.ArcGIS.Controls.IEngineEditor m_engineEditor;
private System.Windows.Forms.Button btnOptions1;
private System.Windows.Forms.Button btnOptions2;
private ESRI.ArcGIS.Controls.AxToolbarControl axToolbarControl1;
private ESRI.ArcGIS.Controls.AxToolbarControl axToolbarControl2;
private ESRI.ArcGIS.Controls.AxTOCControl axTOCControl1;
private ESRI.ArcGIS.Controls.AxMapControl axMapControl1;
private ESRI.ArcGIS.Controls.AxLicenseControl axLicenseControl1;
private TableLayoutPanel tableLayoutPanel1;
private System.ComponentModel.Container components = null;
public Form1()
{
InitializeComponent();
}
protected override void Dispose( bool disposing )
{
ESRI.ArcGIS.ADF.COMSupport.AOUninitialize.Shutdown();
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows Form Designer generated code
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));
this.btnOptions1 = new System.Windows.Forms.Button();
this.btnOptions2 = new System.Windows.Forms.Button();
this.axToolbarControl1 = new ESRI.ArcGIS.Controls.AxToolbarControl();
this.axToolbarControl2 = new ESRI.ArcGIS.Controls.AxToolbarControl();
this.axTOCControl1 = new ESRI.ArcGIS.Controls.AxTOCControl();
this.axMapControl1 = new ESRI.ArcGIS.Controls.AxMapControl();
this.axLicenseControl1 = new ESRI.ArcGIS.Controls.AxLicenseControl();
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
((System.ComponentModel.ISupportInitialize)(this.axToolbarControl1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.axToolbarControl2)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.axTOCControl1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.axMapControl1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.axLicenseControl1)).BeginInit();
this.tableLayoutPanel1.SuspendLayout();
this.SuspendLayout();
//
// btnOptions1
//
this.btnOptions1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnOptions1.Location = new System.Drawing.Point(876, 3);
this.btnOptions1.Name = "btnOptions1";
this.btnOptions1.Size = new System.Drawing.Size(90, 23);
this.btnOptions1.TabIndex = 5;
this.btnOptions1.Text = "Edit Options1";
this.btnOptions1.Click += new System.EventHandler(this.btnOptions1_Click);
//
// btnOptions2
//
this.btnOptions2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnOptions2.Location = new System.Drawing.Point(876, 37);
this.btnOptions2.Name = "btnOptions2";
this.btnOptions2.Size = new System.Drawing.Size(90, 23);
this.btnOptions2.TabIndex = 6;
this.btnOptions2.Text = "Edit Options2";
this.btnOptions2.Click += new System.EventHandler(this.btnOptions2_Click);
//
// axToolbarControl1
//
this.axToolbarControl1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.axToolbarControl1.Location = new System.Drawing.Point(159, 37);
this.axToolbarControl1.Name = "axToolbarControl1";
this.axToolbarControl1.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axToolbarControl1.OcxState")));
this.axToolbarControl1.Size = new System.Drawing.Size(705, 28);
this.axToolbarControl1.TabIndex = 7;
//
// axToolbarControl2
//
this.axToolbarControl2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.axToolbarControl2.Location = new System.Drawing.Point(159, 3);
this.axToolbarControl2.Name = "axToolbarControl2";
this.axToolbarControl2.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axToolbarControl2.OcxState")));
this.axToolbarControl2.Size = new System.Drawing.Size(705, 28);
this.axToolbarControl2.TabIndex = 8;
//
// axTOCControl1
//
this.axTOCControl1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
this.axTOCControl1.Location = new System.Drawing.Point(3, 66);
this.axTOCControl1.Name = "axTOCControl1";
this.axTOCControl1.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axTOCControl1.OcxState")));
this.axTOCControl1.Size = new System.Drawing.Size(150, 433);
this.axTOCControl1.TabIndex = 9;
//
// axMapControl1
//
this.axMapControl1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.axMapControl1.Location = new System.Drawing.Point(159, 66);
this.axMapControl1.Name = "axMapControl1";
this.axMapControl1.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axMapControl1.OcxState")));
this.axMapControl1.Size = new System.Drawing.Size(705, 433);
this.axMapControl1.TabIndex = 10;
this.axMapControl1.OnMouseDown += new ESRI.ArcGIS.Controls.IMapControlEvents2_Ax_OnMouseDownEventHandler(this.axMapControl1_OnMouseDown);
//
// axLicenseControl1
//
this.axLicenseControl1.Enabled = true;
this.axLicenseControl1.Location = new System.Drawing.Point(3, 3);
this.axLicenseControl1.Name = "axLicenseControl1";
this.axLicenseControl1.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axLicenseControl1.OcxState")));
this.axLicenseControl1.Size = new System.Drawing.Size(32, 32);
this.axLicenseControl1.TabIndex = 11;
//
// tableLayoutPanel1
//
this.tableLayoutPanel1.ColumnCount = 3;
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 18.02493F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 81.97507F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 101F));
this.tableLayoutPanel1.Controls.Add(this.axMapControl1, 1, 2);
this.tableLayoutPanel1.Controls.Add(this.axTOCControl1, 0, 2);
this.tableLayoutPanel1.Controls.Add(this.btnOptions1, 2, 0);
this.tableLayoutPanel1.Controls.Add(this.btnOptions2, 2, 1);
this.tableLayoutPanel1.Controls.Add(this.axLicenseControl1, 0, 0);
this.tableLayoutPanel1.Controls.Add(this.axToolbarControl2, 1, 0);
this.tableLayoutPanel1.Controls.Add(this.axToolbarControl1, 1, 1);
this.tableLayoutPanel1.Location = new System.Drawing.Point(11, 10);
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
this.tableLayoutPanel1.RowCount = 3;
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 53.42466F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 46.57534F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 438F));
this.tableLayoutPanel1.Size = new System.Drawing.Size(969, 502);
this.tableLayoutPanel1.TabIndex = 12;
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(1188, 599);
this.Controls.Add(this.tableLayoutPanel1);
this.KeyPreview = true;
this.Name = "Form1";
this.Text = "Feature Editing";
this.Load += new System.EventHandler(this.Form1_Load);
this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Form1_KeyDown);
((System.ComponentModel.ISupportInitialize)(this.axToolbarControl1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.axToolbarControl2)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.axTOCControl1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.axMapControl1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.axLicenseControl1)).EndInit();
this.tableLayoutPanel1.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
[STAThread]
static void Main()
{
if (!RuntimeManager.Bind(ProductCode.Engine))
{
if (!RuntimeManager.Bind(ProductCode.Desktop))
{
MessageBox.Show("Unable to bind to ArcGIS runtime. Application will be shut down.");
return;
}
}
Application.Run(new Form1());
}
private void Form1_Load(object sender, System.EventArgs e)
{
//Set buddy controls
axTOCControl1.SetBuddyControl(axMapControl1);
axToolbarControl1.SetBuddyControl(axMapControl1);
axToolbarControl2.SetBuddyControl(axMapControl1);
//Share command pools
m_CommandPool = new CommandPoolClass();
axToolbarControl1.CommandPool = m_CommandPool;
axToolbarControl2.CommandPool = m_CommandPool;
//Add items to the ToolbarControl
axToolbarControl1.AddItem("esriControls.ControlsEditingEditorMenu",0,-1,false,0,esriCommandStyles.esriCommandStyleIconOnly);
axToolbarControl1.AddItem("esriControls.ControlsEditingEditTool",0,-1,false,0,esriCommandStyles.esriCommandStyleIconOnly);
axToolbarControl1.AddItem("esriControls.ControlsEditingSketchTool",0,-1,false,0,esriCommandStyles.esriCommandStyleIconOnly);
axToolbarControl1.AddItem("esriControls.ControlsUndoCommand",0,-1,true,0,esriCommandStyles.esriCommandStyleIconOnly);
axToolbarControl1.AddItem("esriControls.ControlsRedoCommand",0,-1,false,0,esriCommandStyles.esriCommandStyleIconOnly);
axToolbarControl1.AddItem("esriControls.ControlsEditingTargetToolControl", 0, -1, true, 0, esriCommandStyles.esriCommandStyleIconOnly);
axToolbarControl1.AddItem("esriControls.ControlsEditingTaskToolControl",0,-1,true,0,esriCommandStyles.esriCommandStyleIconOnly);
axToolbarControl1.AddItem("esriControls.ControlsEditingAttributeCommand",0,-1,false,0,esriCommandStyles.esriCommandStyleIconOnly);
axToolbarControl1.AddItem("esriControls.ControlsEditingSketchPropertiesCommand",0,-1,false,0,esriCommandStyles.esriCommandStyleIconOnly);
axToolbarControl1.AddItem("esriControls.ControlsEditingCutCommand", 0, -1, true, 0, esriCommandStyles.esriCommandStyleIconOnly);
axToolbarControl1.AddItem("esriControls.ControlsEditingPasteCommand", 0, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);
axToolbarControl1.AddItem("esriControls.ControlsEditingCopyCommand", 0, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);
axToolbarControl1.AddItem("esriControls.ControlsEditingClearCommand", 0, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);
axToolbarControl2.AddItem("esriControls.ControlsOpenDocCommand",0,-1,false,0,esriCommandStyles.esriCommandStyleIconOnly);
axToolbarControl2.AddItem("esriControls.ControlsAddDataCommand", 0, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);
axToolbarControl2.AddItem("esriControls.ControlsSaveAsDocCommand",0,-1,false,0,esriCommandStyles.esriCommandStyleIconOnly);
axToolbarControl2.AddItem("esriControls.ControlsMapZoomInTool",0,-1,true,0,esriCommandStyles.esriCommandStyleIconOnly);
axToolbarControl2.AddItem("esriControls.ControlsMapZoomOutTool",0,-1,false,0,esriCommandStyles.esriCommandStyleIconOnly);
axToolbarControl2.AddItem("esriControls.ControlsMapPanTool",0,-1,false,0,esriCommandStyles.esriCommandStyleIconOnly);
axToolbarControl2.AddItem("esriControls.ControlsMapFullExtentCommand",0,-1,false,0,esriCommandStyles.esriCommandStyleIconOnly);
axToolbarControl2.AddItem("esriControls.ControlsMapZoomToLastExtentBackCommand",0,-1,false,0,esriCommandStyles.esriCommandStyleIconOnly);
axToolbarControl2.AddItem("esriControls.ControlsMapZoomToLastExtentForwardCommand",0,-1,false,0,esriCommandStyles.esriCommandStyleIconOnly);
axToolbarControl2.AddItem("esriControls.ControlsFullScreenCommand",0,-1,true,0,esriCommandStyles.esriCommandStyleIconOnly);
axToolbarControl2.AddItem("esriControls.ControlsMapIdentifyTool",0,-1,false,0,esriCommandStyles.esriCommandStyleIconOnly);
//Create popup menus
m_toolbarMenuSketch = new ToolbarMenuClass();
m_toolbarMenuVertex = new ToolbarMenuClass();
m_toolbarMenuSketch.AddItem("esriControls.ControlsEditingSketchContextMenu",0,0,false,esriCommandStyles.esriCommandStyleTextOnly);
m_toolbarMenuVertex.AddItem("esriControls.ControlsEditingVertexContextMenu",0,0,false,esriCommandStyles.esriCommandStyleTextOnly);
//Create an operation stack for the undo and redo commands to use
IOperationStack operationStack = new ControlsOperationStackClass();
axToolbarControl1.OperationStack = operationStack;
axToolbarControl2.OperationStack = operationStack;
//Instantiate the EngineEditor singleton
m_engineEditor = new EngineEditorClass();
//Create each command on the ToolbarMenu so that the Accelerator Keys are recognized.
//Alternatively the user must popup the menu before using the Accelerator Keys
long itemCount = m_toolbarMenuSketch.CommandPool.Count;
for (int i = 0; i < itemCount; i++)
{
ICommand pCommand = m_toolbarMenuSketch.CommandPool.get_Command(i);
pCommand.OnCreate(axMapControl1.Object);
}
//Share the commandpool with the ToolbarMenu
m_toolbarMenuSketch.CommandPool = m_CommandPool;
m_toolbarMenuVertex.CommandPool = m_CommandPool;
}
private void btnOptions1_Click(object sender, System.EventArgs e)
{
//Disable this window
this.Enabled = false;
EditProperties editOptions1 = new EditProperties();
//Show the options1 dialog
editOptions1.ShowDialog();
//Enable this window
this.Enabled = true;
}
private void btnOptions2_Click(object sender, System.EventArgs e)
{
//Disable this window
this.Enabled = false;
EditProperties2 editOptions2 = new EditProperties2();
//Show the options2 dialog
editOptions2.ShowDialog();
//Enable this window
this.Enabled = true;
}
private void axMapControl1_OnMouseDown(object sender, ESRI.ArcGIS.Controls.IMapControlEvents2_OnMouseDownEvent e)
{
if (e.button == 2)
{
//Logic to determine which popup menu to show based on the current task and current tool
IEngineEditTask currentTask = m_engineEditor.CurrentTask;
switch (currentTask.UniqueName)
{
case "ControlToolsEditing_CreateNewFeatureTask":
{
if (((ICommand)axToolbarControl1.CurrentTool).Name == "ControlToolsEditing_Sketch")
{
m_toolbarMenuSketch.PopupMenu(e.x, e.y, axMapControl1.hWnd);
}
else if (((ICommand)axToolbarControl1.CurrentTool).Name == "ControlToolsEditing_Edit")
{
//SetEditLocation method must be called to enable commands
((IEngineEditSketch)m_engineEditor).SetEditLocation(e.x, e.y);
m_toolbarMenuVertex.PopupMenu(e.x, e.y, axMapControl1.hWnd);
}
break;
}
case "ControlToolsEditing_ModifyFeatureTask":
{
//SetEditLocation method must be called to enable commands
((IEngineEditSketch)m_engineEditor).SetEditLocation(e.x, e.y);
m_toolbarMenuVertex.PopupMenu(e.x, e.y, axMapControl1.hWnd);
break;
}
}
}
}
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
ICommandPool2 pPool2;
pPool2 = m_toolbarMenuSketch.CommandPool as ICommandPool2;
try
{
pPool2.TranslateAcceleratorKey((int)e.KeyCode);
}
catch (Exception)
{ }
}
}
}
[Visual Basic .NET]
FeatureEditing.vb
Imports ESRI.ArcGIS.Controls
Imports ESRI.ArcGIS.esriSystem
Imports ESRI.ArcGIS.SystemUI
Imports ESRI.ArcGIS
Public Class FeatureEditing
Inherits System.Windows.Forms.Form
Private m_toolbarMenuSketch As IToolbarMenu
Private m_toolbarMenuVertex As IToolbarMenu
Private m_CommandPool As ICommandPool
Friend WithEvents TableLayoutPanel1 As System.Windows.Forms.TableLayoutPanel
Private m_engineEditor As IEngineEditor
<STAThread()> _
Shared Sub Main()
'Load runtime
If Not RuntimeManager.Bind(ProductCode.Engine) Then
If Not RuntimeManager.Bind(ProductCode.Desktop) Then
MessageBox.Show("Unable to bind to ArcGIS runtime. Application will be shut down.")
System.Environment.Exit(1) ' Force exit or other indication in the application
End If
End If
Application.Run(New FeatureEditing())
End Sub
#Region " Windows Form Designer generated code "
Public Sub New()
MyBase.New()
'This call is required by the Windows Form Designer.
InitializeComponent()
'Add any initialization after the InitializeComponent() call
End Sub
'Form overrides dispose to clean up the component list.
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
ESRI.ArcGIS.ADF.COMSupport.AOUninitialize.Shutdown()
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
'Required by the Windows Form Designer
Private components As System.ComponentModel.IContainer
'NOTE: The following procedure is required by the Windows Form Designer
'It can be modified using the Windows Form Designer.
'Do not modify it using the code editor.
Friend WithEvents btnOptions2 As System.Windows.Forms.Button
Friend WithEvents btnOptions1 As System.Windows.Forms.Button
Friend WithEvents AxToolbarControl1 As ESRI.ArcGIS.Controls.AxToolbarControl
Friend WithEvents AxToolbarControl2 As ESRI.ArcGIS.Controls.AxToolbarControl
Friend WithEvents AxTOCControl1 As ESRI.ArcGIS.Controls.AxTOCControl
Friend WithEvents AxMapControl1 As ESRI.ArcGIS.Controls.AxMapControl
Friend WithEvents AxLicenseControl1 As ESRI.ArcGIS.Controls.AxLicenseControl
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(FeatureEditing))
Me.btnOptions2 = New System.Windows.Forms.Button
Me.btnOptions1 = New System.Windows.Forms.Button
Me.AxToolbarControl1 = New ESRI.ArcGIS.Controls.AxToolbarControl
Me.AxToolbarControl2 = New ESRI.ArcGIS.Controls.AxToolbarControl
Me.AxTOCControl1 = New ESRI.ArcGIS.Controls.AxTOCControl
Me.AxMapControl1 = New ESRI.ArcGIS.Controls.AxMapControl
Me.AxLicenseControl1 = New ESRI.ArcGIS.Controls.AxLicenseControl
Me.TableLayoutPanel1 = New System.Windows.Forms.TableLayoutPanel
CType(Me.AxToolbarControl1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.AxToolbarControl2, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.AxTOCControl1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.AxMapControl1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.AxLicenseControl1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.TableLayoutPanel1.SuspendLayout()
Me.SuspendLayout()
'
'btnOptions2
'
Me.btnOptions2.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.btnOptions2.Location = New System.Drawing.Point(839, 38)
Me.btnOptions2.Name = "btnOptions2"
Me.btnOptions2.Size = New System.Drawing.Size(87, 24)
Me.btnOptions2.TabIndex = 8
Me.btnOptions2.Text = "Edit Options2"
'
'btnOptions1
'
Me.btnOptions1.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.btnOptions1.Location = New System.Drawing.Point(839, 3)
Me.btnOptions1.Name = "btnOptions1"
Me.btnOptions1.Size = New System.Drawing.Size(87, 23)
Me.btnOptions1.TabIndex = 7
Me.btnOptions1.Text = "Edit Options1"
'
'AxToolbarControl1
'
Me.AxToolbarControl1.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.AxToolbarControl1.Location = New System.Drawing.Point(158, 38)
Me.AxToolbarControl1.Name = "AxToolbarControl1"
Me.AxToolbarControl1.OcxState = CType(resources.GetObject("AxToolbarControl1.OcxState"), System.Windows.Forms.AxHost.State)
Me.AxToolbarControl1.Size = New System.Drawing.Size(669, 28)
Me.AxToolbarControl1.TabIndex = 9
'
'AxToolbarControl2
'
Me.AxToolbarControl2.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.AxToolbarControl2.Location = New System.Drawing.Point(158, 3)
Me.AxToolbarControl2.Name = "AxToolbarControl2"
Me.AxToolbarControl2.OcxState = CType(resources.GetObject("AxToolbarControl2.OcxState"), System.Windows.Forms.AxHost.State)
Me.AxToolbarControl2.Size = New System.Drawing.Size(669, 28)
Me.AxToolbarControl2.TabIndex = 10
'
'AxTOCControl1
'
Me.AxTOCControl1.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
Me.AxTOCControl1.Location = New System.Drawing.Point(3, 71)
Me.AxTOCControl1.Name = "AxTOCControl1"
Me.AxTOCControl1.OcxState = CType(resources.GetObject("AxTOCControl1.OcxState"), System.Windows.Forms.AxHost.State)
Me.AxTOCControl1.Size = New System.Drawing.Size(147, 476)
Me.AxTOCControl1.TabIndex = 11
'
'AxMapControl1
'
Me.AxMapControl1.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
Or System.Windows.Forms.AnchorStyles.Left) _
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.AxMapControl1.Location = New System.Drawing.Point(158, 71)
Me.AxMapControl1.Name = "AxMapControl1"
Me.AxMapControl1.OcxState = CType(resources.GetObject("AxMapControl1.OcxState"), System.Windows.Forms.AxHost.State)
Me.AxMapControl1.Size = New System.Drawing.Size(669, 476)
Me.AxMapControl1.TabIndex = 12
'
'AxLicenseControl1
'
Me.AxLicenseControl1.Enabled = True
Me.AxLicenseControl1.Location = New System.Drawing.Point(3, 3)
Me.AxLicenseControl1.Name = "AxLicenseControl1"
Me.AxLicenseControl1.OcxState = CType(resources.GetObject("AxLicenseControl1.OcxState"), System.Windows.Forms.AxHost.State)
Me.AxLicenseControl1.Size = New System.Drawing.Size(32, 32)
Me.AxLicenseControl1.TabIndex = 13
'
'TableLayoutPanel1
'
Me.TableLayoutPanel1.ColumnCount = 3
Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 18.7247!))
Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 81.27531!))
Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 98.0!))
Me.TableLayoutPanel1.Controls.Add(Me.AxLicenseControl1, 0, 0)
Me.TableLayoutPanel1.Controls.Add(Me.AxMapControl1, 1, 2)
Me.TableLayoutPanel1.Controls.Add(Me.AxTOCControl1, 0, 2)
Me.TableLayoutPanel1.Controls.Add(Me.btnOptions2, 2, 1)
Me.TableLayoutPanel1.Controls.Add(Me.AxToolbarControl1, 1, 1)
Me.TableLayoutPanel1.Controls.Add(Me.btnOptions1, 2, 0)
Me.TableLayoutPanel1.Controls.Add(Me.AxToolbarControl2, 1, 0)
Me.TableLayoutPanel1.Location = New System.Drawing.Point(3, 2)
Me.TableLayoutPanel1.Name = "TableLayoutPanel1"
Me.TableLayoutPanel1.RowCount = 3
Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 51.69492!))
Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 48.30508!))
Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 481.0!))
Me.TableLayoutPanel1.Size = New System.Drawing.Size(929, 550)
Me.TableLayoutPanel1.TabIndex = 14
'
'FeatureEditing
'
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.ClientSize = New System.Drawing.Size(1130, 641)
Me.Controls.Add(Me.TableLayoutPanel1)
Me.KeyPreview = True
Me.Name = "FeatureEditing"
Me.Text = "Feature Editing"
CType(Me.AxToolbarControl1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.AxToolbarControl2, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.AxTOCControl1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.AxMapControl1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.AxLicenseControl1, System.ComponentModel.ISupportInitialize).EndInit()
Me.TableLayoutPanel1.ResumeLayout(False)
Me.ResumeLayout(False)
End Sub
#End Region
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Set buddy controls
AxTOCControl1.SetBuddyControl(AxMapControl1)
AxToolbarControl1.SetBuddyControl(AxMapControl1)
AxToolbarControl2.SetBuddyControl(AxMapControl1)
'Share command pools
m_CommandPool = New CommandPoolClass
AxToolbarControl1.CommandPool = m_CommandPool
AxToolbarControl2.CommandPool = m_CommandPool
'Add items to the ToolbarControl
AxToolbarControl1.AddItem("esriControls.ControlsEditingEditorMenu", 0, -1, False, 0, esriCommandStyles.esriCommandStyleIconOnly)
AxToolbarControl1.AddItem("esriControls.ControlsEditingEditTool", 0, -1, False, 0, esriCommandStyles.esriCommandStyleIconOnly)
AxToolbarControl1.AddItem("esriControls.ControlsEditingSketchTool", 0, -1, False, 0, esriCommandStyles.esriCommandStyleIconOnly)
AxToolbarControl1.AddItem("esriControls.ControlsUndoCommand", 0, -1, True, 0, esriCommandStyles.esriCommandStyleIconOnly)
AxToolbarControl1.AddItem("esriControls.ControlsRedoCommand", 0, -1, False, 0, esriCommandStyles.esriCommandStyleIconOnly)
AxToolbarControl1.AddItem("esriControls.ControlsEditingTargetToolControl", 0, -1, True, 0, esriCommandStyles.esriCommandStyleIconOnly)
AxToolbarControl1.AddItem("esriControls.ControlsEditingTaskToolControl", 0, -1, True, 0, esriCommandStyles.esriCommandStyleIconOnly)
AxToolbarControl1.AddItem("esriControls.ControlsEditingAttributeCommand", 0, -1, False, 0, esriCommandStyles.esriCommandStyleIconOnly)
AxToolbarControl1.AddItem("esriControls.ControlsEditingSketchPropertiesCommand", 0, -1, False, 0, esriCommandStyles.esriCommandStyleIconOnly)
AxToolbarControl1.AddItem("esriControls.ControlsEditingCutCommand", 0, -1, True, 0, esriCommandStyles.esriCommandStyleIconOnly)
AxToolbarControl1.AddItem("esriControls.ControlsEditingPasteCommand", 0, -1, False, 0, esriCommandStyles.esriCommandStyleIconOnly)
AxToolbarControl1.AddItem("esriControls.ControlsEditingCopyCommand", 0, -1, False, 0, esriCommandStyles.esriCommandStyleIconOnly)
AxToolbarControl1.AddItem("esriControls.ControlsEditingClearCommand", 0, -1, False, 0, esriCommandStyles.esriCommandStyleIconOnly)
AxToolbarControl2.AddItem("esriControls.ControlsOpenDocCommand", 0, -1, False, 0, esriCommandStyles.esriCommandStyleIconOnly)
AxToolbarControl2.AddItem("esriControls.ControlsAddDataCommand", 0, -1, False, 0, esriCommandStyles.esriCommandStyleIconOnly)
AxToolbarControl2.AddItem("esriControls.ControlsSaveAsDocCommand", 0, -1, False, 0, esriCommandStyles.esriCommandStyleIconOnly)
AxToolbarControl2.AddItem("esriControls.ControlsMapZoomInTool", 0, -1, True, 0, esriCommandStyles.esriCommandStyleIconOnly)
AxToolbarControl2.AddItem("esriControls.ControlsMapZoomOutTool", 0, -1, False, 0, esriCommandStyles.esriCommandStyleIconOnly)
AxToolbarControl2.AddItem("esriControls.ControlsMapPanTool", 0, -1, False, 0, esriCommandStyles.esriCommandStyleIconOnly)
AxToolbarControl2.AddItem("esriControls.ControlsMapFullExtentCommand", 0, -1, False, 0, esriCommandStyles.esriCommandStyleIconOnly)
AxToolbarControl2.AddItem("esriControls.ControlsMapZoomToLastExtentBackCommand", 0, -1, False, 0, esriCommandStyles.esriCommandStyleIconOnly)
AxToolbarControl2.AddItem("esriControls.ControlsMapZoomToLastExtentForwardCommand", 0, -1, False, 0, esriCommandStyles.esriCommandStyleIconOnly)
AxToolbarControl2.AddItem("esriControls.ControlsFullScreenCommand", 0, -1, True, 0, esriCommandStyles.esriCommandStyleIconOnly)
AxToolbarControl2.AddItem("esriControls.ControlsMapIdentifyTool", 0, -1, False, 0, esriCommandStyles.esriCommandStyleIconOnly)
'Create popup menus
m_toolbarMenuSketch = New ToolbarMenuClass
m_toolbarMenuVertex = New ToolbarMenuClass
m_toolbarMenuSketch.AddItem("esriControls.ControlsEditingSketchContextMenu", 0, 0, False, esriCommandStyles.esriCommandStyleTextOnly)
m_toolbarMenuVertex.AddItem("esriControls.ControlsEditingVertexContextMenu", 0, 0, False, esriCommandStyles.esriCommandStyleTextOnly)
'Create an operation stack for the undo and redo commands to use
Dim operationStack As IOperationStack
operationStack = New ControlsOperationStackClass
AxToolbarControl1.OperationStack = operationStack
AxToolbarControl2.OperationStack = operationStack
'Instantiate the EngineEditor singleton
m_engineEditor = New EngineEditor()
'Create each command on the ToolbarMenu so that the Accelerator Keys are recognized. Alternatively
'the user must popup the menu before using the Accelerator Keys
Dim itemCount As Integer
itemCount = m_toolbarMenuSketch.CommandPool.Count
Dim i As Integer
For i = 0 To itemCount - 1
Dim pCommand As ICommand
pCommand = CType(m_toolbarMenuSketch.CommandPool.Command(i), ICommand)
pCommand.OnCreate(AxMapControl1.Object)
Next
'Share CommandPool with the ToolbarMenu
m_toolbarMenuSketch.CommandPool = m_CommandPool
m_toolbarMenuVertex.CommandPool = m_CommandPool
End Sub
Private Sub AxMapControl1_OnMouseDown(ByVal sender As System.Object, ByVal e As ESRI.ArcGIS.Controls.IMapControlEvents2_OnMouseDownEvent) Handles AxMapControl1.OnMouseDown
If (e.button = 2) Then
'Logic to determine which popup menu to show based on the current task and current tool
Dim currentTask As IEngineEditTask = m_engineEditor.CurrentTask
Select Case currentTask.UniqueName
Case "ControlToolsEditing_CreateNewFeatureTask"
If (CType(AxToolbarControl1.CurrentTool, ICommand)).Name = "ControlToolsEditing_Sketch" Then
m_toolbarMenuSketch.PopupMenu(e.x, e.y, AxMapControl1.hWnd)
ElseIf (CType(AxToolbarControl1.CurrentTool, ICommand)).Name = "ControlToolsEditing_Edit" Then
'SetEditLocation method must be called to enable commands
CType(m_engineEditor, IEngineEditSketch).SetEditLocation(e.x, e.y)
m_toolbarMenuVertex.PopupMenu(e.x, e.y, AxMapControl1.hWnd)
End If
Case "ControlToolsEditing_ModifyFeatureTask"
'SetEditLocation method must be called to enable commands
CType(m_engineEditor, IEngineEditSketch).SetEditLocation(e.x, e.y)
m_toolbarMenuVertex.PopupMenu(e.x, e.y, AxMapControl1.hWnd)
End Select
End If
End Sub
Private Sub btnOptions1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOptions1.Click
'Disable this window
Me.Enabled = False
Dim editOptions1 As New EditProperties
'Show the options1 dialog
editOptions1.ShowDialog()
'Enable this window
Me.Enabled = True
End Sub
Private Sub btnOptions2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOptions2.Click
'Disable this window
Me.Enabled = False
Dim editOptions2 As New EditProperties2
'Show the options2 dialog
editOptions2.ShowDialog()
'Enable this window
Me.Enabled = True
End Sub
Private Sub FeatureEditing_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
Dim pPool2 As ICommandPool2
pPool2 = CType(m_toolbarMenuSketch.CommandPool, ICommandPool2)
Try
pPool2.TranslateAcceleratorKey(e.KeyCode)
Catch
End Try
End Sub
End Class