TocControl控件简介

TocControl控件的主要作用是显示当前加载的图层有哪些、采用什么样的符号等,目的是使用户对当前加载的数据有一个总体的把握。与之相关联的伙伴控件有:MapControl,PageLayoutControl,ReaderControl,SceneControl,GlobeControl等。

一、TOCControl与数据视图的关联

关联的方式有两种,一种是代码的绑定,第二种是TOCControl控件的属性表中设置。

属性设置:在General选项卡中选择Buddy中进行关联。

代码绑定:axTOCControl.SetBuddyControl(mainMapControl);

二、图层显示顺序的调整

在应用中,有时需要对图层进行顺序调整,以免放生盖压导致部分图层不能显示,图层顺序的调整也有两种方法:

属性设置:通过属性选项卡General下的复选框Enable Layer Drag and Drop,即可实现图层的拖拽功能。

代码实现:分别在TOCControl控件的OnMouseDown和OnMouseUp两个事件设置,及HitTest()方法;

HitTest()方法的参数如下:

1 Public void HitTest(
3    int X,//当鼠标在TOCControl中按下时,参照TOCControl左上角为原点,以像素为单位,
4    int Y, //同上,返回鼠标的y坐标
5    ref esriTOCControlItem ItemType,//枚举常量
6    ref IBasicMap BasicMap,//绑定MapControl中的IBasicMap对象
7    ref ILayer Layer,//被点击的图层对象
8    ref object Unk,//图例组对象
9    ref object Data);//图例组中图例类的索引,根据索引和图例组可获得特定的图例类

ITOCControl接口的HitTest()方法可以返回TOCControl中点击坐标点处的对象类型ItemType。esriTOCControlItem类型对应的关系如下表:

对象 说明
esriTOCControlItemNone 0 没有对象
esriTOCControlItemMap 1 Map对象
esriTOCControlItemLayer 2 Layer对象
esriTOCControlItemHeading 3 对象的标题
esriTOCControlItemLegendClass 4 LegendClass

三、实现思路

1)在TOCControl中,当鼠标点击时即在OnMouseDown事件中,拾取需要调整的图层,当鼠标弹起时即OnMouseUp事件中,获得图层移到位置的图层索引号。

2)使用IMap接口提供MoveLayer方法,将需要调整显示顺序的图层移动目标位置。

3)使用TOCControl的Update()方法,更新TOCControl控件中的图层顺序。


ArcGIS Engine开发之TocControl相关推荐

  1. ArcGIS Engine开发之旅02--ArcGIS Engine中的类库

    原文 ArcGIS Engine开发之旅02--ArcGIS Engine中的类库 System类库 System类库是ArcGIS体系结构中最底层的类库.System类库包含给构成ArcGIS的其他 ...

  2. ArcGIS Engine开发之旅08--和查询相关的对象和接口

    ArcGIS Engine开发之旅08--和查询相关的对象和接口 原文:ArcGIS Engine开发之旅08--和查询相关的对象和接口 查询在GIS领域应该是一个很频繁的操作,在GIS中除了具有属性 ...

  3. ArcGIS Engine开发之旅09--几何对象和空间参考

    1.Geometry  Geometry 是 GIS 中使用最为广泛的对象集之一,用户在创建.删除.编辑和进行地理分析的时候,就是处理一个包含几何形体的矢量对象:除了显示要素意外,控件对象选择,要素符 ...

  4. ArcGIS Engine开发-TOCControl中实现图层的拖放

    TOCControl非常好,不用写一行代码就可以将整个地图的图层信息况显示出来: TOCControl也非常坏,提供的接口非常少,我认为有用的只有三个:HitTest,SetBuddyControl, ...

  5. GIS二次开发:实验一 ArcGIS Engine 开发初步

    实验一 ArcGIS Engine 开发初步 一.实验目的 掌握ArcGIS Engine的安装: 熟悉ArcGIS Engine中几个常用的控件: 搭建第一个简单的ArcGIS Engine 程序: ...

  6. ArcGIS介绍:ArcObjects、 ArcGIS Desktop、ArcGIS Engine 和 ArcSDE、ArcIMS、ArcGIS Server

    版权声明 :转载时请以超链接形式标明文章原始出处和作者信息及本声明 http://hgg2002.blogbus.com/logs/45875381.html 在ArcGIS 9系列产品中,ArcGI ...

  7. 【ArcGIS Engine开发入门】1.简单显示地图LicenseContro,ToolbarControl,TOCControl,MapControl

    必需是VS2012(下载的高版本VS不能装Engine,可以装俩个VS),和ArcMap 10.2(ArcGIS只能装一个,且必须要保证删干净) 下载安装可以看其他人的教程 .Arcgis Engin ...

  8. 利用ArcGIS Engine、VS .NET和Windows控件开发GIS应用

    Dixon 原文  用ArcGIS Engine.VS .NET和Windows控件开发GIS应用 此过程说明适合那些使用.NET建立和部署应用的开发者,它描述了使用ArcGIS控件建立和部署应用的方 ...

  9. C#,ArcGIS Engine开发入门教程

    利用ArcGIS Engine.VS .NET和Windows控件开发GIS应用 Dixon整理 此过程说明适合那些使用.NET建立和部署应用的开发者,它描述了使用ArcGIS控件建立和部署应用的方法 ...

最新文章

  1. visual studio spy使用实现后台按键_多种精华液应该如何叠加使用?
  2. jquery_3month
  3. opencv相机标定
  4. 命令行下操作常用语句
  5. python多元回归预测例子_Python机器学习,多元线性回归分析问题
  6. 删除U盘作为启动盘的隐藏启动分区
  7. 计算机网络部分(共44题),全国自学考试自考04741计算机网络原理4月考试真题
  8. 使用javamail进行邮件发送
  9. Android P 网络报错 : java.io.IOException: Cleartext HTTP traffic to ***.com not permitted
  10. STM32(二)----寄存器讲解
  11. php音频格式 操作,php操作视频音频类-ffmpeg-php
  12. linux oom-killer
  13. 几款查看dll和exe信息的小工具
  14. 本地安装易邮邮箱服务器并用foxmail 连接测试
  15. Android Studio中修改APP图标和APP名称
  16. 【一款好用的安卓投屏软件Androidscreen】
  17. 【求回答】如何在mac上使用pip?zsh: command not found: pip
  18. Oracle常见sql语句练习及答案(经典题目,方便练习)
  19. Git提交单个文件过大,git error: remote unpack failed:error Object too large
  20. 如何2周拿到Google Cloud专业架构师认证

热门文章

  1. 关于Android工程师转成vue的三两事儿(4)--webpack
  2. CGMP, IGMP Snooping and RGMP
  3. 一个设置容器和网格布局的小技巧
  4. spring配置 quartz-config.xml
  5. 《重构-改善既有代码的设计》——读后总结
  6. [书目20161206]小狗钱钱的人生整理术
  7. 日常记录(4)让百度和google收录我们的网站
  8. 快速配置vs2012+opencv
  9. 【iOS】UIViewController、UINavigationController与UITabBarController的整合使用
  10. android内核读取file文件