《ArcGIS Engine+C#实例开发教程》教程Bug及优化方案1
摘要:《ArcGIS Engine+C#实例开发教程》教程Bug及优化方案1,到第六讲为止已经发现的教程Bug及解决方法如下.
第一讲 桌面GIS应用程序框架的建立
第二讲 菜单的添加及其实现
第三讲 MapControl与PageLayoutControl同步
第四讲 状态栏信息的添加与实现
第五讲 鹰眼的实现
第六讲 右键菜单添加与实现
教程Bug及优化方案1
第七讲 图层符号选择器的实现1
第七讲 图层符号选择器的实现2
第八讲 属性数据表的查询显示
第一讲 桌面GIS应用程序框架的建立
第二讲 菜单的添加及其实现
第三讲 MapControl与PageLayoutControl同步
第四讲 状态栏信息的添加与实现
第五讲 鹰眼的实现
第六讲 右键菜单添加与实现
教程Bug及优化方案1
第七讲 图层符号选择器的实现1
第七讲 图层符号选择器的实现2
第八讲 属性数据表的查询显示
到第六讲为止已经发现的教程Bug及解决方法如下:
1、在第二讲可能会出现变量未定义。
原因:第二讲与第三讲联系紧密,我为控制篇幅才将其分为两讲,某些变量是在第三讲才进行定义,请大家注意。
2、第六讲弹不出TOCControl的右键菜单
原因:没有取得m_tocControl的指针,即没有把m_tocControl指针与axTOCControl1控件绑定,导致调用m_menuMap.PopupMenu(e.x,
e.y,m_tocControl.hWnd);时m_tocControl.hWnd为NULL,故无法弹出菜单。
解决方法:在Form1_Load()函数中,添加如下代码:
|
m_tocControl = (ITOCControl2)this.axTOCControl1.Object; |
目前已经发现的优化方案如下:
1、教程第四讲,坐标单位前面的esri,原用switch语句逐一替换,其实直接用取子串(Substring)的方法截去更方便。
修改代码如下:
| CoordinateLabel.Text= " 当前坐标 X = " + e.mapX.ToString() + " Y = " + e.mapY.ToString() + " "+ this.axMapControl1.MapUnits.ToString().Substring(4); |
2、教程第四讲,固定状态栏中的比例尺和当前坐标项目的宽度以防止闪烁。
方法如下:
选中状态栏中的比例尺或当前坐标项目,把其autoSize属性设为False,再在Size属性里设置宽度。经测试,比例尺宽度为150,当前坐标宽度为400比较合适。
本博有部分内容来自网络,如有问题请联系:hebeilijianghua@qq.com,并注明来自博客园。
浙公网安备 33010602011771号