欢迎您来到GIS动力

加入收藏 免费注册 用户登陆 帮助中心
首页 新闻动态 技术专栏 银杏树下 学习考研 软件下载 求职招聘 许愿瓶 节日祝福 用户中心 精彩推荐 资源搜索 地图
专栏导航: AO开发 | SO开发 | ArcGIS桌面 | 超图桌面 | 开发语言 | 数据库 | WebGIS | 银杏文学 | 研究生考题 | FreeMap 谈天说地
   您现在位于: 首页技术专栏ArcGIS应用与开发AO开发 → 正文
TOCControl高级应用
08-04-09 15:52:11 作者:watson 出处:watson

TOCControl非常好,不用写一行代码就可以将整个地图的图层信息况显示出来;
  TOCControl也非常坏,提供的接口非常少,我认为有用的只有三个:HitTest,SetBuddyControl,Update,而且Update方法一执行,整个TocControl就会重新装载一次,闪烁很厉害,实在是让人烦。要想在TOCControl中拖动图层,也并不容易,得动一动脑筋才行。
  下面是我写的一个类,用于实现拖动图层,有需要的朋友,可以复制过去了,看一看。
  需要说明的是,该类需要传入一个System.Windows.Forms.Control作为移动图层时显示要移到的位置,所以,在TOCControl上最好上一个Panel,然后传入到TocHelper中。另外,在计算同m_MovingLine显示的位置时,偶没找到什么好办法,只好设置了一个行高的参数。在正常字体时,据我的经验,行高是16,在Windows大字体显示时,行高是18,可以精确的显示。但这毕竟不是一个好办法。哪位高人要是看到了这个帖子,也请指点小弟一二,感激不尽!

publicclassTocHelper
{
privateESRI.ArcGIS.TOCControl.AxTOCControlm_toc;
privateILayerm_layer=null;
privateobjectm_other,m_index;

privateLayerPopmenum_LyMenu;
privateDataFramePopmenum_FrameMenu=newDataFramePopmenu();

publiceventCurrentLayerChangedHandlerCurrentLayerChanged;

privateboolm_Dragging=false;
privateSystem.Windows.Forms.Controlm_MovingLine;//=newSystem.Windows.Forms.Panel();

publicTocHelper(ESRI.ArcGIS.TOCControl.AxTOCControltoc)
{
m_toc=toc;
m_LyMenu=newLayerPopmenu(this);
m_LyMenu.TOCControl=m_toc;
m_FrameMenu.TOCControl=m_toc;

m_toc.LabelEdit=esriTOCControlEdit.esriTOCControlManual;
/**////处理事件
m_toc.OnMouseDown+=newITOCControlEvents_OnMouseDownEventHandler(m_toc_OnMouseDown);
m_toc.OnMouseMove+=newITOCControlEvents_OnMouseMoveEventHandler(m_toc_OnMouseMove);
m_toc.OnMouseUp+=newITOCControlEvents_OnMouseUpEventHandler(m_toc_OnMouseUp);
m_toc.OnBeginLabelEdit+=newITOCControlEvents_OnBeginLabelEditEventHandler(m_toc_OnBeginLabelEdit);
m_toc.OnEndLabelEdit+=newITOCControlEvents_OnEndLabelEditEventHandler(m_toc_OnEndLabelEdit);
}

publicvoidSetMoveLine(System.Windows.Forms.Controlline)
{
m_

9 7 3 1 2 3 4 5 6 7 4 8 :

(本文已被浏览 次)
发布人:admin
推荐给好友:发送给好友
上篇新闻:
下篇新闻:
相关评论
发表我的评论
  • 尊重网上道德,遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他各项有关法律法;
  • 本站有权保留或删除您发表的任何评论内容;
  •   相关文章  
    TOCControl中调出SymbolSelector
    VS2005不支持TOCControl控件的问题解决

    关于我们 友情链接 ┋ 与我在线 ┋ 管理 ┋ TOP
    网站当前版本:GisPower CMS V3.0
    『GIS 动力』- http://www.gispower.org/
    联系我们:webmaster#gispower.org
    Copyright (c) 2003-2007 GisPOwer.Org. All Rights Reserved.

                   滇ICP备05006901号