从MapX到MapXtreme2004[1]-工具选择

  网上的MapXtreme的资料实在太少了,MapXtreme编程基本上只能靠英文帮助和以前的Mapx的一些底子。我想写一个系列,把Mapx到Mapxtreme的学习历程记录下来。

  在Mapx中为控件选择工具比较迅速,也很直观,如下:

             Map1.CurrentTool = miZoomInTool

  miZoomInTool是个枚举量,指定给CurrentTool属性即可,而且象在VB中,直接在等号之后就把备选项就列出来了,非常容易。

  在MapXtreme中,这个不起眼的问题却搞得有点麻烦,主要是架构有点变化,设置位置很容易找

              MapControl1.MapTools.CurrentTool=

  可是,要赋的值却比较麻烦,因为C#中并没有给出智能提示,而且在帮助和对象浏览器中也没有找到什么枚举值。帮助中说要赋String类型,试着

              MapControl1.MapTools.CurrentTool="ZoomInMapTool";

  但是出错。于是查找帮助,了解MapXtreme中的架构,大致如此:MapTools属于MapControl控件的工具集合,其中已经包含了10个工具,debug中挨个求出如下:

                    0:ZoomInMapTool

                    1:ZoomOutMapTool

                    2:PanMapTool

                    3:CenterMapTool

                    4:PointSelectionMapTool

                    5:RadiusSelectionMapTool

                    6:RectangleSelectionMapTool

                    7:PolygonSelectionMapTool

                    8:DistanceMapTool

                    9:InfoMapTool

  但是要选择工具,却不能用Index,也不能用某项的名字字符串,必须用toolname属性,而且必须这样

                    MapControl1.MapTools.CurrentTool =ZoomInMapTool.Toolname;

  因为Toolname是一个静态属性,所以必须用类名来引用,其他别的方式都不行。

  看来,以后要用哪个工具,得先查到工具名称,然后才能指定了。

其他相关:

  1、Toolname是这几个类的特定属性,在其他的工具类中没有。

  2、如果界面中已经放置了同功能的操作控件并关联到MapControl控件,那么将会干扰到程序选择的工具。比如,既放了自带的移动控件,又有一个按钮可以设置移动工具,在点击自定义的按钮,选择移动工具时,那么,界面中的移动控件就会自动处于被按下的状态。这时,再用自定义的选择工具去设置别的功能就不管用了,怎么都是移动功能。所以,最好只要一个就行了。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏阮一峰的网络日志

Bookmarklet编写指南

前一段日子,我写了两个Bookmarklet----"短网址生成"和"短网址还原"。 它们用起来很方便,除了我本人之外,其他朋友也在用。第一次发布Bookmar...

48190
来自专栏IT开发技术与工作效率

Excel VBA文件分割器构思

13320
来自专栏不止是前端

TS+React+Router+Mobx+Koa打造全栈应用

49770
来自专栏carven

koa+socket.io尝试简单的web动作同步

尝试用过browser-sync辅助开发的前端同学,大概都会感到神奇:在多个端打开网页,网页的动作却是完全同步的。

11900
来自专栏程序员宝库

10 种最常见的 Javascript 错误

英文:SKOWRONSKI 译文:elevenbeans elevenbeans.github.io/2018/02/05/top-10-javascript...

38480
来自专栏小狼的世界

封装内容和功能 – YUI TabView使用小记

本文主要内容取自 Caridy Patino 在2008年发布的文章,原文中使用的是YUI2,笔者对例子做了一些更新,均使用了YUI3.1.1,文章中讨论的这个...

10120
来自专栏小狼的世界

Firebug Command Line 的使用技巧

Commandlinie是Firebug中总有用的一个特性。如果你有Microsoft Visual Studio的使用经验,你就会知道“Immediate W...

11830
来自专栏ThoughtWorks

你不知道的高性能JAVASCRIPT | TW洞见

想必大家都知道,JavaScrip是全栈开发语言,浏览器,手机,服务器端都可以看到JS的身影。 本文会分享一些高效的JavaScript的最佳实践,提高大家对...

35450
来自专栏前端布道

JavaScript之Event Loop

先看段代码: console.log(1); setTimeout(function () { console.log(2); new Pr...

310120
来自专栏贺贺的前端工程师之路

React中的Redux

整个应用的state被存储在一棵object tree中,并且这个object tree只存在于唯一一个store中。

11420

扫码关注云+社区

领取腾讯云代金券