TOCControl中实现图层的拖放.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ArcGIS Engine开发-TOCControl中实现图层的拖放 [收藏此页] [打印] 【IT168知识库】 ?TOCControl非常好,不用写一行代码就可以将整个地图的图层信息况显示出来;   TOCControl也非常坏,提供的接口非常少,我认为有用的只有三个:HitTest,SetBuddyControl,Update,而且Update方法一执行,整个TocControl就会重新装载一次,闪烁很厉害,实在是让人烦。要想在TOCControl中拖动图层,也并不容易,得动一动脑筋才行。   下面是我写的一个类,用于实现拖动图层,有需要的朋友,可以复制过去了,看一看。   需要说明的是,该类需要传入一个System.Windows.Forms.Control作为移动图层时显示要移到的位置,所以,在TOCControl上最好上一个Panel,然后传入到TocHelper中。另外,在计算同m_MovingLine显示的位置时,偶没找到什么好办法,只好设置了一个行高的参数。在正常字体时,据我的经验,行高是16,在Windows大字体显示时,行高是18,可以精确的显示。但这毕竟不是一个好办法。哪位高人要是看到了这个帖子,也请指点小弟一二,感激不尽! public燾lass燭ocHelper tr牋牋bl{ 牋牋牋牋private燛SRI.ArcGIS.TOCControl.AxTOCControl爉_toc; 来;   T牋牋牋牋private營Layer爉_layer?爊ull; ol.AxTOC牋牋牋牋private爋bject爉_other,m_index; AxTOCC 牋牋牋牋private燣ayerPopmenu爉_LyMenu? AxTOCC牋牋牋牋private燚ataFramePopmenu爉_FrameMenu?爊ew燚ataFramePopmenu(); ontrol也非常 牋牋牋牋public爀vent燙urrentLayerChangedHandler燙urrentLayerChanged; ontrol也 牋牋牋牋private燽ool爉_Dragging?爁alse; dHandler牋牋牋牋private燬ystem.Windows.Forms.Control爉_MovingLine;//?爊ew燬ystem.Windows.Forms.Panel(); 只有三个:HitT 牋牋牋牋public燭ocHelper(ESRI.ArcGIS.TOCControl.AxTOCControl爐oc) stem.W牋牋牋牋publ{ 牋牋牋牋牋牋m_toc?爐oc; er(ESRI.牋牋牋牋牋牋m_LyMenu?爊ew燣ayerPopmenu(this); trol.AxTO牋牋牋牋牋牋m_LyMenu.TOCControl?爉_toc; is); tro牋牋牋牋牋牋m_FrameMenu.TOCControl?爉_toc; ; trol.A 牋牋牋牋牋牋m_toc.LabelEdit?爀sriTOCControlEdit.esriTOCControlManual; m.Window????????????/**////处理事件 ????????????m_toc.OnMouseDown?+=?new?ITOCControlEvents_OnMouseDownEventHandler(m_toc_OnMouseDown); 牋牋牋牋牋牋m_toc.OnMouseMove?=爊ew營TOCControlEvents_OnMouseMoveEventHandler(m_toc_OnMouseMove); seDown); 牋牋牋牋牋牋m_toc.OnMouseUp?=爊ew營TOCControlEvents_OnMouseUpEventHandler(m_toc_OnMouseUp); ove); seD牋牋牋牋牋牋m_toc.OnBeginLabelEdit?=爊ew營TOCControlEvents_OnBeginLabelEditEventHandler(m_toc_OnBeginLabelEdit); uddyContr牋牋牋牋牋牋m_toc.OnEndLabelEdit?=爊ew營TOCControlEvents_OnEndLabelEditEventHandler(m_toc_OnEndLabelEdit); dit); udd牋牋牋牋} m_to 牋牋牋牋public爒oid燬etMoveLine(System.Windows.Forms.Control爈ine) ditEven牋牋牋牋publ{ 牋牋牋牋牋牋m_MovingLine?爈ine; (System.牋牋牋牋牋牋m_Moving

文档评论(0)

PPT精品 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档