About the ArcGIS Network Analyst extension Engine application Sample
[C#]
cmdRemoveLayer.cs
using System.Runtime.InteropServices;
using System.Windows.Forms;
using ESRI.ArcGIS.Carto;
// This command removes the selected layer from the map
namespace NAEngine
{
[Guid("53399A29-2B65-48d5-930F-804B88B85A34")]
[ClassInterface(ClassInterfaceType.None)]
[ProgId("NAEngine.RemoveLayer")]
public sealed class cmdRemoveLayer : ESRI.ArcGIS.ADF.BaseClasses.BaseCommand
{
private ESRI.ArcGIS.Controls.IMapControl3 m_mapControl;
public cmdRemoveLayer()
{
base.m_caption = "Remove Layer";
}
public override void OnClick()
{
if (m_mapControl == null)
{
MessageBox.Show("Error: Map control is null for this command");
return;
}
// Get the layer that was right-clicked on in the table of contents
// m_MapControl.CustomProperty was set in frmMain.axTOCControl1_OnMouseDown
var layer = m_mapControl.CustomProperty as ILayer;
if (layer == null)
{
MessageBox.Show("Error: The selected layer was not set as the CustomProperty of the map control");
return;
}
// Remove the selected layer, then redraw the map
m_mapControl.Map.DeleteLayer(layer);
m_mapControl.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, layer.AreaOfInterest);
}
public override void OnCreate(object hook)
{
// The "hook" was set as a MapControl in formMain_Load
m_mapControl = hook as ESRI.ArcGIS.Controls.IMapControl3;
}
}
}
[Visual Basic .NET]
cmdRemoveLayer.vb
Imports Microsoft.VisualBasic
Imports System.Runtime.InteropServices
Imports System.Windows.Forms
Imports ESRI.ArcGIS.Carto
' This command removes the selected layer from the map
Namespace NAEngine
<Guid("53399A29-2B65-48d5-930F-804B88B85A34"), ClassInterface(ClassInterfaceType.None), ProgId("NAEngine.RemoveLayer")> _
Public NotInheritable Class cmdRemoveLayer : Inherits ESRI.ArcGIS.ADF.BaseClasses.BaseCommand
Private m_mapControl As ESRI.ArcGIS.Controls.IMapControl3
Public Sub New()
MyBase.m_caption = "Remove Layer"
End Sub
Public Overrides Sub OnClick()
If m_mapControl Is Nothing Then
MessageBox.Show("Error: Map control is null for this command")
Return
End If
' Get the layer that was right-clicked on in the table of contents
' m_MapControl.CustomProperty was set in frmMain.axTOCControl1_OnMouseDown
Dim layer As ILayer = TryCast(m_mapControl.CustomProperty, ILayer)
If layer Is Nothing Then
MessageBox.Show("Error: The selected layer was not set as the CustomProperty of the map control")
Return
End If
' Remove the selected layer, then redraw the map
m_mapControl.Map.DeleteLayer(layer)
m_mapControl.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, Nothing, layer.AreaOfInterest)
End Sub
Public Overrides Sub OnCreate(ByVal hook As Object)
' The "hook" was set as a MapControl in formMain_Load
m_mapControl = TryCast(hook, ESRI.ArcGIS.Controls.IMapControl3)
End Sub
End Class
End Namespace