ArcGIS二次开发基础教程(00):基础界面设计

article/2025/10/15 15:17:02

ArcGIS二次开发基础教程(00) : 基础界面设计

(开发环境:VS2010+ArcEngine10.2+C# ;鉴于学习ArcGIS二次开发的同学都有一定的WinForm开发和ArcGIS软件使用基础,故此教程不再对一些基础内容作详细阐述)

  1. 首先新建一个Windows窗体应用程序,设置Size为(700, 450),再添加一个MenuStrip,输入文件,如图:
    在这里插入图片描述

  2. 添加一个ToolBarControl,设置Dock为Top;添加一个SplitContainer控件,设置Orientation为Vertical,在splitContainer1.Panel1 中再添加一个SplitContainer,设置Orientation为Horizontal;在splitContainer1.Panel2中添加TabControl控件,将Alignment设置为Bottom,将选项卡放到下面,将第一个选项卡的Text改为Data View,第二个改为Layout View。如图:在这里插入图片描述

  3. 在splitContainer2.Panel1中添加TOCControl控件(Table Of Contents),在DataView中添加MapControl(主地图),在splitContainer2.Panel2中添加另一个MapControl(鹰眼图),在LayoutView中添加PageLayoutControl(制图用图),再往窗体中拖一个LicenseControl(许可控件)。如图:
    在这里插入图片描述

  4. 右击ToolbarControl,选择属性->General->设置Buddy Control为axMapControl1
    在这里插入图片描述
    再选择items->点击Add->Commands->Generic->右边双击Add Data->Close,如图:
    在这里插入图片描述

  5. 关掉属性窗,右击TOCControl选择属性,同样设置Buddy Control为axMapControl1。(这种方法设置的Buddy有时会失效,最好还是在代码中设置)
    在这里插入图片描述

  6. 在窗体的构造函数中添加获得许可语句和设置TOCControl的Buddy:

    ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop);
    InitializeComponent();
    axTOCControl1.SetBuddyControl(axMapControl1);      
    
  7. ArcEngine的开发框架为.Net Framework 3.5,而VS2010默认的框架为4.0,需更改,否则会出现如图所示警告;解决方法:右击项目名称点击属性,将目标框架改为.Net Framework 3.5。此时还会出现一个警告:未能找到引用的组件“Microsoft.CSharp”。 将其移除即可
    在这里插入图片描述

  8. 运行程序,点击AddData小图标,选择一个ShapeFile文件打开,如图:

在这里插入图片描述

历届GIS应用技能大赛开发题答案点这里,尚在不定期更新中


http://chatgpt.dhexx.cn/article/WOvOdoVU.shtml

相关文章

【ArcGIS二次开发】TOCControl右键菜单功能实现

1、添加现有项 ①右击解决方案中的项目,添加TOCControlContextMenu中的LayerSelectable、LayerVisibility、RemoveLayer、ZoomToLayer ②点击菜单栏中的项目,添加引用ESRI.ArcGIS.ADF.Local ③修改RemoveLayer中的命名空间为项目名称EngineMapTest&#…

arcgis python实例_arcgis二次开发_arcgis二次开发python_arcgis二次开发实例

[1.rar] - QQ连连看的源码.单消秒杀挂机等功能喜欢的朋友请拿去研究 [qqCHAR.rar] - qq 验证码识别程序 可以叫准确的识别出qq登陆前的验证码 [1.rar] - 本书以Visualc作为开发语言,结合大量实例,详细介绍了利用Arcobjects组件进行GIS二次开发的方法和…

【ArcGIS二次开发】Engine界面搭建

1、新建窗体项目Windows Appplication(Engine) 2、添加menuStrip、statusStrip和ToolbarControl控件,并设置相应的Dock属性为Top和Right 3、用SplitContainer控件把显示区域分成三部分,并设置splitContatiner1的Orientation属性为Horizontal 4、添加TabC…

ArcGIS二次开发基础教程(02):地图导航和鹰眼

ArcGIS二次开发基础教程(02):地图导航和鹰眼 地图导航(主要是调用命令和工具) 地图的放缩和漫游 if(axMapControl1.CurrentTool null) {ICommand icc;//地图放大ITool tool new ControlsMapZoomInToolClass();//地图缩小//ITool tool n…

arcgis java 二次开发_arcgis二次开发_cad二次开发_java arcgis二次开发

属性查询是GIS应用不可缺少的重要功能,尤其是在各种业务系统中,根据用户输入相应的查询条件,从属性要素中快速定位到用户感兴趣的要素,为业务应用提供了便利。本文就来聊一聊QGis二次开发中如何实现属性查询功能。 其实这个功能我…

AE+ArcGIS二次开发课程设计(基于C#)

AEArcGIS二次开发课程设计(基于C#) 1.工作内容2.程序功能介绍3.功能模块介绍3.1 实现【创建TIN】说明3.1.1 功能说明3.1.2 代码实现(包含了所有主要的代码,库引用自行导入) 3.2 实现【TIN坡度坡向分析】说明3.2.1 功能…

ArcGIS二次开发前言

ArcGIS二次开发前言 前言环境常见bug解决方案 前言 自毕业成为GIS开发工程师已有一年多的时间,时间很短,短到不过人一生中工作时限的3.75%,时间很长,长到收藏夹已经从零攒到了一千四百多条记录,OneNote上也记录了几十…

ArcGIS Engine二次开发

目录 1 前言 2 准备工作 2.1 License的加入 2.2 ToolStrip控件 2.3 MenuStrip控件 2.4 帮助文档的查看 3 数据加载 3.1 矢量数据的加载 3.2 栅格数据的加载 4 地图浏览功能 1 前言 这是一份关于ArcGIS Engine二次开发的一份报告总结,在这份报告中包含了简单的…

ArcGIS二次开发知识点总结

空间分析定义:空间分析是指分析具有空间坐标或相对位置的数据和过程的理论和方法,是对地理空间现象的定量研究,其目的在于提取并传输空间数据中隐含的空间信息。 叠置分析定义:是指将同一坐标系统下不同信息表达的两组或多组专题…

【ArcGIS Pro二次开发】(31):ArcGIS Pro中的多线程

ArcGIS Pro与旧的ArcGIS桌面应用程序的显著不同之处在于,它采用多线程架构,可以有效的发挥多核CPU的优势。这使得二次开发工具的性能变得更好,但也对开发工作带来了更多的难点和挑战。 一、多线程需要注意的问题 一般情况下,为了…

GIS二次开发:实验一 ArcGIS Engine 开发初步

实验一 ArcGIS Engine 开发初步 一、实验目的 掌握ArcGIS Engine的安装;熟悉ArcGIS Engine中几个常用的控件;搭建第一个简单的ArcGIS Engine 程序;通过ICommand接口添加地图浏览工具。 二、实验仪器与设备 计算机、visual studio 软件、A…

Arcgis二次开发软件安装(Arcgis10.2、VS2012、AE10.2)

目录 一、序言 二、Arcgis10.2安装 (一)安装ArcGIS License Manager 1.1 ArcGIS License Manager安装 1.2 ArcGIS License Manager配置 (二)安装ArcGIS Desktop 1.1ArcGIS Desktop安装 1.2.ArcGIS文件替换 1.3中文显示与…

StackPanel 实现从上往下+从右往左 排列+RenderTransform特效实例分析

StackPanel:将子元素排列到可沿水平或垂直放置的行。 参考资料: 1. StackPanel类 2. Silverlight学习笔记(九)——RenderTransform特效【五种基本变换】及【矩阵变换MatrixTransform】 3. MatrixTransform矩阵变换 stack表明StackPane…

控件篇 - 子控件在StackPanel里的居中问题

如下面代码&#xff1a; <StackPanel Width"200" Height"80" Background"Tomato"><TextBlock HorizontalAlignment"Center" VerticalAlignment"Center" Text"ABCD"/></StackPanel> 原意是想通…

Docker Stack

大规模场景下的多服务部署和管理是一件很难的事情。Docker Stack 为解决该问题而生&#xff0c;Docker Stack 通过提供期望状态、滚动升级、简单易用、扩缩容、健康检查等特性简化了应用的管理&#xff0c;这些功能都封装在一个完美的声明式模型当中。 Stack 能够在单个声明文…

StackPanel布局

StackPanel可以把内部元素在纵向或横向上紧凑排列&#xff0c;形成栈式布局。 示例代码&#xff1a; <Grid><GroupBox Header"请选择没有错别字的成语" BorderBrush"Black" Margin"5"><StackPanel Margin"5" Heig…

2.12 Stack

2.12 Stack Stack也是List接口的实现类之一&#xff0c;和Vector一样&#xff0c;因为性能原因&#xff0c;更主要在开发过程中很少用到栈这种数据结构&#xff0c;不过栈在计算机底层是一种非常重要的数据结构&#xff0c;下边将探讨下Java中Stack。 2.12.1 Stack的继承关系 …

wpf之StackPanel布局

注意两个参数&#xff1a; Orientation &#xff1a;控制排列是水平方向&#xff0c;还是垂直方向&#xff08;Horizontal 水平方向 Vertical垂直方向&#xff09; FlowDirection&#xff1a;控制控件排序是从右往左还是从左往右&#xff0c;写两个简单的demo如下&#xff…

四、StackPanel控件

StackPanel可以把内部控件在纵向或横向上紧凑排列、形成栈式布局&#xff0c;当上层控件不被删除时&#xff0c;剩余的控件会前移&#xff0c;填充空白 特点&#xff1a; 同类控件紧凑排列移除其中…

WPF 控制StackPanel用法

StackPanel是非常相似的WrapPanel&#xff0c;但至少有一个重要的区别&#xff1a;StackPanel的不换行的内容。相反&#xff0c;它将内容向一个方向拉伸&#xff0c;允许您将一项一项一项地堆叠在一起。让我们首先尝试一个非常简单的示例&#xff0c;就像我们对 WrapPanel 所做…