从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控件,那么将会干扰到程序选择的工具。比如,既放了自带的移动控件,又有一个按钮可以设置移动工具,在点击自定义的按钮,选择移动工具时,那么,界面中的移动控件就会自动处于被按下的状态。这时,再用自定义的选择工具去设置别的功能就不管用了,怎么都是移动功能。所以,最好只要一个就行了。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Python实现数据写入 Excel 的三种模块!
- redis的两种持久化的机制,你真的了解么?
- 绝对能让你彻底明白的Redis的内存淘汰策略
- redis缓存穿透穿透解决方案-布隆过滤器
- Python动态图见得多了?Excel:亦可赛艇!我可是身经百战了
- LinkedList 源码剖析
- ArrayDeque 源码解读
- Apache Kafka 真的只是消息引擎吗?
- 注册Spring Bean:如何将BeanDefinition注册到IoC容器?
- 新冠病毒 - 数据采集、模型预测
- 初始化Spring Bean:Bean初始化有哪些方式?
- 为什么我做的网页总是卡?前端性能优化规则要点
- 递归
- 高阶函数和闭包
- 严格模式