zoukankan      html  css  js  c++  java
  • C#+AE 调整TOCControl控件中图层的显示顺序

    
    

    基本思路如下:利用鼠标左键将需要调整顺序的图层移动至目标位置。

    ①需要涉及到TOCControl的OnMouseDown事件来获取要调整的图层,

    ②OnMouseUp事件获得目标图层和索引号,

    ③再利用IMap提供的MoveLayer方法,将相应调整axMapControl中的图层的显示顺序。

    ④最后使用TOCControl的Update方法来更新TOCControl控件中的显示顺序;










    //全局变量 public ITOCControl mTOCControl; public ILayer pMoveLayer;//需要被调整的图层; public int toIndex;//将要调整到的目标图层的索引; //窗体加载 private void Form1_Load(object sender, EventArgs e) { this.axTOCControl1.SetBuddyControl(this.axMapControl1); mTOCControl=this.axTOCControl1.Object as ITOCControl; } //TOCControl控件的OnMouseDown事件,获得需要被调整的图层 private void axTOCControl1_OnMouseDown(object sender, ITOCControlEvents_OnMouseDownEvent e) { esriTOCControlItem item=esriTOCControlItem.esriTOCControlItemNone; if (e.button == 1) { IBasicMap map = null; ILayer layer = null; object other = null; object index = null; mTOCControl.HitTest(e.x, e.y, ref item, ref map, ref layer, ref other, ref index); if (item == esriTOCControlItem.esriTOCControlItemLayer) { if(layer is IAnnotationSublayer) { return; } else { pMoveLayer = layer; } } } } //TOCControl控件的OnMouseUp事件,获得目标图层及索引 //并实现axMapControl中视图显示的索引的变化,并更新TOCControl控件中的显示顺序 private void axTOCControl1_OnMouseUp(object sender, ITOCControlEvents_OnMouseUpEvent e) { if (e.button == 1) { esriTOCControlItem item = esriTOCControlItem.esriTOCControlItemNone; IBasicMap map = null; ILayer layer = null; object other = null; object index = null; mTOCControl.HitTest(e.x, e.y, ref item, ref map, ref layer, ref other, ref index); IMap pMap = this.axMapControl1.ActiveView.FocusMap; if(item==esriTOCControlItem.esriTOCControlItemLayer||layer!=null) { if (pMoveLayer != null) { ILayer pTempLayer; for (int i = 0; i < pMap.LayerCount; i++) { pTempLayer = pMap.get_Layer(i); if (pTempLayer == layer) { toIndex = i; } } pMap.MoveLayer(pMoveLayer,toIndex); axMapControl1.ActiveView.Refresh(); mTOCControl.Update(); } } } }

      

  • 相关阅读:
    phpexcel 相关知识
    php 相关的设置
    linux md5sum 常用用法
    mysql 修改group_concat的限制(row 20000 was cut by group_concat())
    mysql设置最大连接数 max_connections
    Mysql 需要修改的一些配置
    mysql设置远程访问,解决不能通过ip登录的问题(MySQL Error Number 2003,Can't connect to MySQL server )
    mysql 用户权限管理的粗略认识
    文字图片在wps中清晰化方法
    Linux 如何释放Hugepage 占用的内存
  • 原文地址:https://www.cnblogs.com/cuiguanghe/p/2993517.html
Copyright © 2011-2022 走看看