ArcGIS Engine9.2 + C#实例开发详细教程
ArcGIS Engine 10.2 安装教程

ArcGIS Engine 10.2.x软件安装一、安装前准备在开发ArcGIS Engine程序之前,需要首先部署完成开发环境。
本文的ArcGIS Engine 开发实例以C#语言为例,C#的集成开发环境选择Visual Studio 2012,对ArcGIS Engine开发环境的搭建需要遵循下面的步骤顺序进行:1. 安装Visual Studio 2012;见教程《Visual Studio 2012(2013)安装激活教程》2. 安装ArcGIS Engine Runtime 10.2 或者ArcGIS Desktop 10.2;见《ArcGIS 10.2下载安装破解汉化教程》3. 安装ArcGIS Engine Developer Kit For Microsoft .NET Framework 10.2;ArcGIS Engine Developer Kit有支持多种开发语言的开发包,用户可以使用VB6,VC++,C#,Java等对ArcGIS Engine进行开发。
每种语言都有对应的ArcGIS Engine Developer Kit 安装包,本文主要以C#为例。
注释:ArcGIS Engine DevKit 10.2的安装需要安装Microsoft .NET Framework 3.5 Service Pack 1,因为ArcGIS Engine DevKit 10.2在安装时会检测本地是否已经安装.Net Framework 3.5,如果已经安装,那么ArcGIS Engine的.Net类库就会安装到系统上,如果没有检测到.Net Framework 3.5,那么ArcGIS Engine的.Net类库就不会安装到系统上;具体表现为在ArcGIS Engine的安装目录下会有一个DotNet的文件夹,如果该文件夹存在就表示ArcGIS Engine的.Net类库已经安装到本地系统上。
ArcEngine二次开发入门介绍

ArcObjects OMD图表上的虫洞
概念上,这是一个对象模型 事实上, 被分别在几张图表里存放
虫洞表现了图表与图表间的连接关系
虫洞
Element on ArcMap OMD
FeatureLayer on Map Layer OMD
例子: MxDocument > Map > layer
或者通过另一个类的实例化来创建对象。
在OMD中的关系类型主要有: 类型继承(AT和yBpe为in普h通eri类ta对nc象e),C为组件类对象,D为一普通类, 创建(Inst如an下tia面tio代n码): 组成(ComAp=osBit.iwornit)eA:()对象间的主次关系
) 关联(AssAoc=iaCtio.wnrsiteA()
*
Layer
ILayer pLayer = pMap. get_Layer(1);
// Is( pLayer is IFeatureLayer ) {
FeatureLayer
MessageBox.Show( "Yes!, it’s a feature layer" ); }
从当前的文档中取得聚焦的Map (active data frame)
MxDocument 可以包含一些 Maps ( * )
从一个 Map中取得图层对象
MxDocument
图层对象有多种的类型 ( )
*
Map
IMxDocument pMxDoc = LoadMxdDoc (@"c:\Temp\test.mxd"); IMap pMap = pMxDoc.FocusMap;
������ GeoTransformations(地理变换)对象等。
ArcGIS10.2及Arcgis Engine10.2安装资源、步骤、授权

ArcGIS10.2及ArcGIS Engine10.2安装资源、步骤及破解参考网上现有的ArcGIS10.2及ArcGIS Engine 10.2安装教程和资源,本人结合自身安装的成功经验,归纳总结了如下文档,为学习者提供方便。
(商业用途请支持正版)前期软件下载现提供ArcGIS10.2及ArcGIS Engine 10.2安装所需软件包资源,大家可通过百度云盘提取:下载、解压后,完整资源列表如下:ArcGIS Desktop 10.2 安装步骤(详细内容请参考/article/e73e26c0cb5c1324adb6a791.html)一、安装ArcGIS Desktop 10.2桌面端,先安装License Manager许可管理。
打开LicenseManager文件夹,双击安装程序进行安装。
安装license Manager10.2完成后,【停止】服务,(如果是服务默认停止的就跳过此步骤)。
如图:然后,复制破解文件夹里边的破解文件:【Service.txt和ArcGIS.exe】替换License10.2目录bin下的相同文件,如图二、安装ArcGIS Desktop 10.2桌面端打开ArcGIS10.2_DesktopCN(中文破解版)文件夹,点击setup.exe安装如图,同意服务进入下一步:进入Arcgis10.2软件安装步骤,如图:软件安装时间漫长,约半个小时以上,具体看计算机性能!【注意】:安装完成后,点击完成会弹出一个ArcGIS Administrator窗口,不用管它,直接关闭!!!三、Arcgis10.2授权(声明:商业用途请支持正版)单击左下角图标,打开license Manager如图:点击启动,重新获取许可(本质就是或者第一步刚才复制替换的service.txt)重新获取成功后,打开ArcGIS Administrator,选择【Arcinfo浮动版】,下边输入localhost,如图红色框出部分!【安装成功表现】:破解成功即可看到如图所以界面(ArcGIS Administrator)ArcGIS Engine 10.2安装教程在开发ArcGIS Engine程序之前,需要首先部署完成开发环境。
优-ArcEngine基础开发教程C#二次开发ArcGis

pLine.PutCoords(pPoint1,pPoint2); //QI 到 ISegment
ISegment pSegment= pLine as ISegment; //创建一个 Path 对象
SegmentCollection pPath= new PathClass();
object o=Type.Missing; //通过 ISegmentCollection 接口为 Path 对象添加 Segment 对象
04/04/2011
本文由 fxlcoco 编写 ESRI BBS GIS 大讲堂首发 第 1 页,共 80 页
山东农业大学资源与环境学院
世界有我精彩-【侯志伟】整理
地理信息系统08-3
可以看到在 Visual Studio 中看到在新创建的项目中自动加载了 ToolBarControl、TocControl、LicenseControl、 MapControl 四个 ArcGIS Engine 控件以及一个.NET ToolStripMenuItem 菜单控件,如图 3 所示:
pPolyline.AddGeometry(pPath as IGeometry, ref o, ref o); 2.4.4.2Polylgon 几何对象
2Polylgon 对象是由一个或多个 Ring 对象的有序集合,它可以是由单个 Ring 对象构成,也可以使用多个 Ring 组成如下图所示。其中 Ring 可以分为 Outer Ring(外环)和 Inner Ring(内环)之分。外环和内环都是有方向的, 它们的区别是外环的方向是顺时针的,内环的方向是逆时针。Polygon 通常用来代表有面积的多边形矢量对象, 如行政区,建筑物等。
04/04/2011
ArcGIS Engine + C# 图层符号选择器的实现

ArcGIS Engine + C# 图层符号选择器的实现图1在AE开发中,符号选择器有两种实现方式。
一是在程序中直接调用ArcMap中的符号选择器,如下所示:图2二是自定义符号选择器,如图1所示。
由于第一种方式前提是必须安装ArcGIS Desktop,其界面还是英文的,而对二次开发来说,大部分用户希望应该是中文界面。
因此开发人员通常选择第二种方式,本讲也着重讲解第二种方式。
直接调用ArcMap中的符号选择器(1)添加ESRI.ArcGIS.DisplayUI的引用。
分别在解决方案管理器和代码中添加引用。
(2)添加TOCControl的Double_Click事件。
(3)实现TOCControl的Double_Click事件。
因为种方法不是本讲的重点,故不对代码进行分析,有兴趣的读者请自行理解或结合后面的内容理解。
代码如下:(4)编译运行即可。
自定义符号选择器AE9.2提供了SymbologyControl控件,极大的方便了图层符号选择器的制作。
本讲实现的符号选择器有如下功能。
用户双击TOCControl控件中图层的符号时,弹出选择符号对话框,对话框能够根据图层类型自动加载相应的符号,如点、线、面。
用户可以调整符号的颜色、线宽、角度等参数。
还可以打开自定义的符号文件(*.ServerStyle),加载更多的符号。
新建符号选择器窗体新建Winodws窗体,命名为SymbolSelectorFrm,修改窗体的Text属性为“选择符号”。
并添加SymboloryControl、PictureBox、Button、Label、NumericUpDown、GroupBox、ColorDialog、OpenFileDialog、ContextMenuStrip控件。
控件布局如下所示:设置控件属性设置相应控件的相关属性,如下表所示(空则不用修改):控件Name属性Text属性其它SymbologyControl axSymbologyControlPictureBox ptbPreviewLabel lblColor 颜色Label lblSize 大小Label lblWidth 线宽Label lblAngle 角度Label lblOutlineColor 外框颜色NumericUpDown nudSizeNumericUpDown nudWidthNumericUpDown nudAngleButton btnColor (设置为空)Button btnOutlineColor (设置为空)Button btnMoreSymbols 更多符号Button btnOK 确定DialogResult属性设为OK Button btnCancel 取消GroupBox groupBox1 预览GroupBox groupBox2 设置ColorDialog colorDialogOpenFileDialog openFileDialog Filter属性设置为:Styles 文件|*.ServerStyleContextMenuStrip contextMenuStripMoreSymbol添加引用在解决方案资源管理器中添加ArcGIS Engine的ESRI.ArcGIS.Geodatabase引用,在SymbolSelectorFrm.cs文件中添加如下引用代码:初始化(1)添加SymbolSelectorFrm的全局变量,代码如下:(2)修改SymbolSelectorFrm的构造函数,传入图层和图例接口。
GIS地理信息系统产品

GIS地理信息系统-+GIS地理信息系统+-~~~~~~~~~~~~~~~~~~~~Esri产品:ArcGIS.Desktop.v9.2-ISO 1DVDArcGIS.Engine.v9.0-ISO 1CDArcGIS.Engine.Runtime.9.0.0.0 1CDArcGIS.Server.9.0.Pre-release.for.Windows 1CDArcGIS.Workstation.v9.0-ISO 1CDArcV iew.v8.1-ISO 2CDArcView.GIS.v3.3中文版(包括最新插件) 1CDArcView.GIS.v3.3 1CDArcView 3D 图制作标准SOPArcView 培训资料ArcINFO.Workstation.v9.0-ISO 3CDArcINFO.DeskTOP.V8.1 4CDArcIMS.v4.0.1-ISO 3CDArcIMS.v9.0-ISO 1CDArcSDE.V9.0-ISO 1CDArcPAD V7.0.1(移动制图和GIS软件)MapObjects.v2.3 1CD(一组共开发人员使用的制图和GIS功能组件) MapObjects.Java.Edition.v2.0-ISO for windows&unix&Linux 1CDArcObjects练习数据和开发示例1CDGIS 地理信息系统培训课程讲义体中文(68.7M)ArcMap讲义(中文)ArcMap 简体中文应用入门ing中文ArcGIS.training中文ArcGIS.Server培训资料ArcGIS.Imagine 遥感图像处理方法(44.91MB)Nelava产品:Socet.SET.v5.3-ISO 1CD(数字摄影测量软件,主要提供於军事用途和商务方面,藉由它可轻易得到地球上任一地方精确的座标位置) Socet SET 5.2 Manual.AddonOrima v8.72 For Socet Set v5.2VRone.And.VR.Mapping.Software.v2.59VRone.v2.56.For.Socet SET 5.2CURIOUS SOFTW ARE产品:World Maps v7.0-ISO 1DVDWorld Maps v7.2D UpdateOnlyWorld Map of Natural Hazards 2005 Multi-ISO 1CD(自然灾害的世界地图)CURIOUS.WORLD.MAPS.V6.2CLecia Geosystems徕卡公司产品:Erdas.Imagine v9.1-ISO 1CD(遥感图像处理)Erdas.Imagine v8.7 With LPS v8.7-ISO 6CDErdas.Imagine 8.7 Example Data 1CDbined.v1.0Leica.PhotoGrammetry.Suite.v9.1-ISO 1CD(数字摄影测量及遥感处理)Leica.Virtual.Explorer.v3.1-ISO 1CD(数字地球可视化)IDRISI产品:Kilimanjaro v14.0.1-ISO 1CD(地理信息系统(GIS)及图象处理软件)IDRISI Andes v15.00-ISO 1CD(一个交互式GIS和影像处理软件,提供了200个模块来分析和处理数字空间信息,提供了业界最广泛的GIS和影像处理工具,包括土地规划、决策支持、风险分析等等)Microimages产品:MicroImages TNT v6.9 1CD(地理信息系统分析软件)BAE Systems产品:VITec PC v4.1 1CD(英国宇航系统公司出品的卫星图片处理及地图生成软件)PCI产品:PCI Geomatica v10.0-ISO 1CDPCI Geomatica v9.0-ISO 6CD(PCI Geomatica软件是加拿大PCI公司开发的用于摄影测量分析、遥感影像处理几何制图、GIS分析、雷达数据分析、以及资源管理和环境监测的多功能软件系统)DELUO产品:ROUTIS v2004-ISO 2CD(加拿大、美国街道导航软件)MapFactor产品:MapFactor.Navigator.v4.0.2.Multilanguages.Professional-ISO 5CD(导航,无缝连接欧洲地图,可在一张地图上查看所有国家)导世通科产品:Destinator.6.European.Maps.Multilanguage-ISO 3CD(汽车导航软件)Destinator.v6.Working.Multilanguage-ISO 3CD(导航软件)PJ SOFT产品:plete.Edition-ISO 1CD(导航软件)GARMIN产品:Garmin Bluechart Atlantic v7.0-ISO 1CD(电子导航\电子地图软件)Garmin MapSource Metroguide Europe.v7.0-ISO 3CD(GARMIN的英文地图软件,可用于上下载GARMIN的系列GPS导航器的导航数据)Garmin MapSource Atlantic v4.0-ISO 1CDSoftree产品:Softree RoadEng Terrain Tools v4Softree Terrain Tools v4RSI产品:RSI.Envi.v4.2 1CD(一套功能齐全的遥感图像处理系统,是处理、分析并显示多光谱数据、高光谱数据和雷达数据的高级工具)RSI.Envi.v4.2.for.Linux 1CDRSI.Envi.v4.2.for.Linux64 1CDRSI.Exchange.v6.0.38RSI.CAMCAD.Pro.v4.4.024(模型输入输出,数据转化)Research.Systems.IDL.v6.3 1CDResearch.Systems.IDL.v6.3.Win64 1CDResearch.Systems.IDL.v6.3.Linux 1CDRSI.Ilidar.v1.0ITT Industries Inc.产品:ITTVIS.IDL.v6.3.AnalystITTVIS.ENVI.v4.3 1CD(遥感开发工具包)ITTVIS.ENVI.v4.3.Linux 1CDITTVIS.ENVI.v4.3.Linux64 1CDBOEING产品:BOEING.SoftPlotter.v4.1.With.Airfield-ISO 1CD(数字摄影测量实用系统)BOEING.GIS.Feature.Collection.Module.v1.2.For.BOEING.SoftPlotter.v4.1-ISO 1CD(GFCM可选模块)Nobeltec产品:Visual.Navigation.Site.v7.0.780-ISO 2CD(专业的电子导航软件,包括电子图表分析,GPS定位系统)Aerial Imagery Corrector v1.42.117(一个用于地理坐标系统的软件,专门用来矫正和处理航空照片、卫星图像等)AGIS.for.Windows.2002Alturion.GPS.Professional.v6.0-ISO 2CD(是为用PDA和笔记本电脑用户提供现行的交通信息的专业GPS导航软件)Route66.Mobile7.Symbian.S60.Europe-ISO 1DVD(专门为诺基亚智能手机设计的Mobile 7 GPS软件)AIS-Sim v2.50(AIS和NMEA的仿真软件,能够使用内置的AIS信息仿真HS-NMEA,分析收到的AIS信息并显示在雷达上)BlueMarble.GeoObjects.v4.0(在应用程序中放置地图的软件)ND.v5.7.WinAll(可以自动下载屏幕显示范围的10米精度卫星图) CompeGPS.AIR.v5.7.WinAllCorda.Popchart.Enterprise.With.OptiMap.v5.1.2ACorda.Popchart.Enterprise.With.OptiMap.v5.1.2A for LinuxC.MAP.World.Sea.Map-ISO 1CDDeltaGIS.Project.Edition.v5.0.0.0.MultilingualDeltaGIS.Project.Edition.v5.1.1.0EMapZone.v4.2(专业的电子地图软件,并且可能通过GPS来接收更新的信息)ER Mapper 7.0-ISO 1CD(在142个国家使用,全球有514家销售商提供支持,世界上最流行的桌面集成化图像处理软件)ER Mapper 7.0 addonFME.Suite.v2004.ICE.3 1CD(通用的跨GIS软件平台数据转换工具,可以进行快速、无损的数据转换)Focus RedShift 5-ISO 1CD(现今欧美最畅销的一套超重量级的星体观测天文软件) OziExplorer3D.v1.07.Beta.WinALL(三维地图浏览软件以及GPS地图浏览软件)Starry Night Enthusiast 4.5 2CD(Starry Night 系列是目前最先进, 功能最多的仿真天体软件)GeoCAP.v4.1.17(地理信息系统多功能建模)Geographic.Calculator.v6.2(一款可以对图像文件进行校正、重投影、分成图像片及图像接合等处理,从而能更好的利用光栅图像的工具软件)Geographic.Transformer.v5.1.1.1(将光栅图像在GIS(地理信息系统Geographic Information System)项目中图形中的象素和现实世界具体位置的坐标对应映射联系起来的工具)Geographic.Translator.v3.0GeoView v5.7.5Geopainting.GPSMapEdit.v1.0.16.1GeoSatSignal.v5.0.2.580(专门处理Meteosat, NOAA and GMS三类地球同步卫星数据的图像处理软件)GeoSystem.Delta.v5.0-ISO 1CD(地球物理/CAD.定位软件)Global.Mapper.v8.00(地图绘制软件。
ArcGis9.2 安装 测绘院专用

ArcGis9.2中文版破解安装说明//手把把教你装ArcGIS//2008年03月04日编写//如有转载请标明出处//icuit@1,下载arcgis9.2DVD.iso 大小为3.24G,下载地址如下/show.aspx?id=422&cid=51喝口水,开始等待2,安装虚拟光驱软件,细节此处不再多说。
3,用虚拟光驱加载ISO文件,此时“我的电脑”中会多一个光驱盘符,双击之如没有弹出安装界面,而打开了文件夹,则双击内ESRI.exe运行之。
界面如下4,得首先安装ArcGIS License Manager。
点击后界面如下选择I received thd license file by fax. 再点Create.界面如下点Edit此处须输入内容,可自定。
后点OK再点OK ,点NEXT,点INSTALL完了后选择稍后重启计算机Finish.5,破解此License Manager,步骤如下。
/arcgis9.2/Arcgis9.2Crack.rar打开此压缩包,并把ARCGIS.exe与arcgis_gisempire.lic两个文件复制到C:\Program Files\ESRI\License\arcgis9x 路径下,问覆盖否,选是。
并用记事本打开arcgis_gisempire.lic 文件,看到第一行有如下图所示内容注意下图所标段在“我的电脑”上点右键,属性,移动到计算机名一栏。
可以看到“完整的计算机名称”。
复制,注意不要后面的.然后替换刚才打开的lic文件,如图所示。
保存,关闭文件。
6,打开License Manager Tools(开始->程序->ArcGIS->License Manager9.x-> License Manager Tools)在Service/License File 一栏中选择Configuration using Services,并点一下面的ArcGis L M.再点到Configure Services一栏在Path to the license file 后面的Browse ,然后定位到C:\Program Files\ESRI\License\arcgis9x并选择刚才复制过来并修改过的lic文件,打开Save service,是点到Start/Stop/Reread 一栏点Start Server下面的状态栏会显示services starting然后点到Server Diagnostics 一栏,点击Perform Diagnostics.会出现下面的界面可以看到license server: 计算机名过期时间:2011年11月11日最重要的一句,This license can be checked out.好。
win7旗舰版arcgis9.3 下载及破解

arcgis 9.3 破解版下载arcgis 9.3 破解版授权形式:破解版更新时间:2009-02-26 14:57:02软件语言:英文软件平台:WinXP/Win2003/Vista 软件类别:国外软件文件大小:18.5 Kb评论等级:★★★☆☆内含破解文档需要一提的是:安装9.3需要先杀死9.2的所有产品线才能继续因为目前只下到了Desktop,还没有Engine,所以先在服务器上安装了下:)安装方法如下:1,安装crack文件夹下licence manager)安装时要选择用fax获取,下一步后点Edit在里面随便输入几个字并选择稍后重启.licz目录下有个9x的dat文件打开,把yourhost替换成计算机名并保存.加上overwrites下其它文件一并全部覆盖到C:\programfiles\ESRI\licence\arcgis9x下.2,安装ArcView(不知道为什么不叫ArcInfo),一路安装就是了,没什么要注意的.3,其余的步骤和arcgis9.2没什么区别了,最后记得运行一下crack目录里的reg文件.即可以看到传说中的arcgis9.3 Desktop打开ArcMap,并没有什么不同,工具栏上多了一个modelBuilder.地图工具条上多了一个添加超链接的按钮.下载地址ArcGis 9.3地址1ArcGIS10.0破解方法请进这里/archives/arcgis10-crackwin7旗舰版,desktop的9.2和9.3都可以正常安装。
9.2的安装,按照vista的安装破解方式,先安装一个vista的lic管理,不能用xp的破解方式;安装完vista的lic管理后,其他安装一切照旧。
ArcGIS9.3安装步骤:1、运行license_server_setup文件夹中的LMSetup.exe,选择license_server_setup文件夹中的37102011.efl9做为许可证文件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一讲桌面GIS应用程序框架的建立本讲主要是使用MapControl、PageLayoutControl、ToolbarControl、TOCControl四个控件建立起基本的桌面GIS应用程序框架。
最终成果预览如下:1、新建项目启动VS2005,选择“文件|新建|项目”,在项目类型中选择Visual C#,再选择Windows应用程序模板,输入名称“3sdnMap”,点击确定。
在解决方案管理器中将“Form1.cs”重命名为“3sdnMap.cs”,在设计视图中,选中窗体,将其属性中的“Text”改为“3sdnMap”。
2、添加控件选择工具箱中的“菜单和工具栏|MenuStrip”,将其拖入窗体。
选择工具箱中的“ArcGIS Windows Forms”节,将“ToolbarControl”控件拖入窗体,并将其属性中的Dock设置为Top。
选择工具箱中的“菜单和工具栏|StatusStrip”,将其拖入到窗体。
选择工具箱中的“容器|SplitContainer”容器拖入窗体,并将其属性中的Dock设置为Fill。
将TabControl控件拖入Panel1,将Alignment属性设置为Bottom,Dock属性设置为Fill。
点击TabPages属性右边的按钮,弹出TabPage 集合编辑器,将tabPage1的Name设置为tabPageLayer,Text设置为图层,将tabPage2的Name设置为tabPageProperty,Text设置为属性。
如下所示。
选择“图层”选项卡,拖入TOCControl控件,设置Dock属性为Fill。
选择“属性”选项卡,拖入DataGridView控件,设置Dock属性为Fill。
拖入TabControl控件到Panel2,设置Dock属性为Fill。
并上述类似的方法,将两个选项卡的Name和Text分别设置为:(tabPageMap、地图),(tabPageLayout,制版)。
选择“地图”选项卡,拖入MapControl控件,设置Dock属性为Fill。
选择“制版”选项卡,拖入PageLayoutControl控件,设置Dock属性为Fill。
最后将LicenseControl控件拖入到窗体的任意地方。
按F5编译运行,可以看到刚才布局好的程序界面了。
3、控件绑定通过以上步骤添加的控件还只是单独存在,而我们的程序需要各控件间协同工作,因此要进行控件绑定。
分别右击ToolbarControl、TOCControl控件,将Buddy设置为axMapControl1,如下图所示。
这样,工具条和图层控件就与地图控件关联了。
4、添加工具此时,工具条中还没有任何工具,添加的方法也很简单。
右击ToolbarControl,选择“属性|Items”,点击Add,选择Commands选项卡中的Generic,双击Open、SaveAs、Redo、Undo即可将相应工具添加到工具条。
常见的工具有:Map Navigation中的导航工具,Map Inquiry中的查询工具,Feature Selection中的选择工具,你可以根据需要酌情添加工具。
5、编译运行按F5即可编译运行程序,至此桌面GIS应用程序框架基本框架已经搭建好了,你可以通过工具条的工具打开地图文档,浏览地图了,效果如开篇所示。
第二讲菜单的添加及其实现在上一讲中,我们实现了应用程序基本框架,其中有个小错误,在此先跟大家说明下。
在“属性”选项卡中,我们当时添加的是 DataGridView 控件,这个控件是用来显示数据表的,而专门用于属性的查询和设置的控件是 PropertyGrid 控件。
因此请你删除“属性”选项卡中的DataGridView 控件,再把位于“工具箱 | 所有 Windows 窗体 |PropertyGrid ”(如果没有,右击选择“选择项”以添加此控件)控件拖到该选项卡。
在这一讲中,主要讲解菜单的添加和实现。
1、添加菜单在设计视图中,单击菜单栏,会出现“请在此处键入”的提示,单击提示就可以键入菜单名称,如“文件”,再单击“文件”,即可输入其下拉子菜单,如下所示:Tips :每创建一个菜单,请在其属性面板中设置 Name 属性,而且不要为中文,因此 Name 值将是此菜单响应函数的函数名的一部分,带中文的函数名,总是不好吧。
本讲中,我们将添加新建( New )、打开( Open )、添加数据( AddData )、保存( Save )、另存为( SaveAs )、退出( Exit )这些菜单,()内为相应的 Name 属性值。
Tips:你可以在属性面板中的 Text 属性中,把菜单名设置为中英文形式,如“打开 O pen ”,带下划线的 O 表示此项菜单的快捷键是字母 O ,设置方法是在相应字母前加上“ & ”字符,如“打开 &Open ”。
但这种快捷键只在打开此下拉菜单时才有效,即当你单击“文件”菜单弹出下拉菜单时,按下字母 O 就可以定位到“打开”菜单。
还有一种在程序运行时都有效的全局快捷键,可以在属性面板中的“ ShortCutKeys ”中设置。
你还可以在属性面板中的 Image 属性中设置你喜欢的菜单图标。
单击 Image 那一行右边的按钮,弹出如下菜单。
选择“项目资源文件”,再单击导入就可以选择你的图标了。
最终效果显示如下:注意,在解决方案面板中,选中刚才添加的所有图标,在其属性面板中将生成操作设置为“嵌入的资源”,这一点很重要!2、实现相关菜单首先定义指针(写在 public partial class Form1 : Form 下面即可):private ESRI.ArcGIS.Controls.IMapControl3 m_mapControl = null;private ESRI.ArcGIS.Controls.IPageLayoutControl2 m_pageLayoutControl = null;private IMapDocument pMapDocument;若以上指针无效,请添加以下引用:using ESRI.ArcGIS.Carto;using ESRI.ArcGIS.Controls;using ESRI.ArcGIS.esriSystem;using ESRI.ArcGIS.Display;using ESRI.ArcGIS.Geometry;using ESRI.ArcGIS.SystemUI;在设计视图中的属性面板中,选择 Form1 ,即主窗体,单击事件按钮(闪电形状的那个按钮),打到“ Load ”事件并双击,添加此事件。
在 Form1_Load 函数中初始化这些指针:// 取得 MapControl 和 PageLayoutControl 的引用m_mapControl = (IMapControl3)this.axMapControl1.Object;m_pageLayoutControl = (IPageLayoutControl2)this.axPageLayoutControl1.Object;依次双击每个菜单项,添加菜单响应函数。
实现代码如下:/// <summary>/// 新建地图命令/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void New_Click(object sender, EventArgs e){// 本命令涉及到 MapControl 和 PageLayoutControl 同步问题,将在下一讲中实现}/// <summary>/// 打开地图文档 Mxd 命令/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void Open_Click(object sender, EventArgs e){// 本命令涉及到 MapControl 和 PageLayoutControl 同步问题,将在下一讲中实现}/// <summary>/// 添加数据命令/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void AddData_Click(object sender, EventArgs e){int currentLayerCount = yerCount;ICommand pCommand = new ControlsAddDataCommandClass();pCommand.OnCreate(this.axMapControl1.Object);pCommand.OnClick();}/// <summary>/// 保存地图文档命令/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void Save_Click(object sender, EventArgs e){// 首先确认当前地图文档是否有效if(null!=m_pageLayoutControl.DocumentFilename&&m_mapControl.CheckMxFile(m_pageLayoutControl.DocumentFilename)){// 创建一个新的地图文档实例IMapDocument mapDoc = new MapDocumentClass();// 打开当前地图文档mapDoc.Open(m_pageLayoutControl.DocumentFilename, string.Empty);// 用 PageLayout 中的文档替换当前文档中的 PageLayout 部分mapDoc.ReplaceContents((IMxdContents)m_pageLayoutControl.PageLayout);// 保存地图文档mapDoc.Save(esRelativePaths, false);mapDoc.Close();}}/// <summary>/// 另存为地图文档命令/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void SaveAs_Click(object sender, EventArgs e){// 调用另存为命令ICommand command = new ControlsSaveAsDocCommandClass();command.OnCreate(m_controlsSynchronizer.ActiveControl);command.OnClick();}/// <summary>/// 退出程序/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void Exit_Click(object sender, EventArgs e){Application.Exit();}3、编译运行按 F5 编译运行程序。