ae+C#实现图层管理控件上的图层移动功能
2015-09-19 21:03
741 查看
using System;
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;
}
}
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;
}
}
相关文章推荐
- 使用C# 与Xero OAuth 交互 集成
- C# 设置MDI子窗体只能弹出一个的方法
- C# 启动外部程序的几种常用方法汇总
- 对DevExpress GridControl控件,实现通过checkbox选中时整行高亮
- C#基础知识系列四(运算符汇总)
- C#中string.Empty和""、null的区别
- C#创建和初始化类
- C#简单实现子窗体向父窗体传值的方法
- C# 获得图片的分辨率和大小
- C#语法基础用法Dictionary排序
- C# 制作 二维码/条形码
- C# VideoAPI
- C#计算程序执行过程花费时间的方法
- C# Enum Flags
- C#学习笔记(三)
- C# 生成和解析二维码
- C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 角色权限的配置页面改进优化
- (转徐明吉)C#生成随机数
- WPF--打开文件
- WPF--窗口的属性