using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using ESRI.ArcGIS.Controls;
using ESRI.ArcGIS.Carto;
namespace MoveTocCtrlItem
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.axTOCControl1.SetBuddyControl(this.axMapControl1);
//this.axTOCControl1.EnableLayerDragDrop = true;
}
private esriTOCControlItem toccItem = esriTOCControlItem.esriTOCControlItemNone;
private IBasicMap basicMap = null;
private ILayer Lyr = null;
//移动图层
ILayer moveLyr;
ILayer toLyr;
int toIndex;
private void axTOCControl1_OnMouseDown(object sender, ESRI.ArcGIS.Controls.ITOCControlEvents_OnMouseDownEvent e)
{
System.Object unk = null;
System.Object data = null;
if (e.button == 1)
{
axTOCControl1.HitTest(e.x, e.y, ref toccItem, ref basicMap, ref Lyr, ref unk, ref data);
if (toccItem == esriTOCControlItem.esriTOCControlItemLayer)
{
moveLyr = Lyr;
}
}
}
private void axTOCControl1_OnMouseMove(object sender, ESRI.ArcGIS.Controls.ITOCControlEvents_OnMouseMoveEvent e)
{
if(e.button==1)
this.axTOCControl1.MousePointer = ESRI.ArcGIS.Controls.esriControlsMousePointer.esriPointerHourglass;
}
private void axTOCControl1_OnMouseUp(object sender, ESRI.ArcGIS.Controls.ITOCControlEvents_OnMouseUpEvent e)
{
System.Object unk = null;
System.Object data = null;
if (e.button == 1)
{
axTOCControl1.HitTest(e.x, e.y, ref toccItem, ref basicMap, ref toLyr, ref unk, ref data);
if (toccItem == esriTOCControlItem.esriTOCControlItemLayer)
{
toLyr = Lyr;
}
for (int i = 0;i < axTOCControl1.ActiveView.FocusMap.LayerCount; i++)
{
if (toLyr == axTOCControl1.ActiveView.FocusMap.get_Layer(i))
{
toIndex = i;
break;
}
}
}
axTOCControl1.ActiveView.FocusMap.MoveLayer(Lyr, toIndex);
axTOCControl1.Update();
this.axTOCControl1.MousePointer = ESRI.ArcGIS.Controls.esriControlsMousePointer.esriPointerDefault;
}
}