toolControls添加工具项
最近参考Arcengine的Samples做的功能,虽然简单,但是示例代码的确体现出了很好的封装性,值得学习,效果图如下:

闲话休絮,直入正题:
一、首先建立工具类,实现IMenuDef接口
class Neval:IMenuDef//这个接口
{
public string Caption
{
get
{
return "Navigation";
}
}
public void GetItemInfo(int pos, IItemDef itemDef) //POS为序列号
{
switch (pos)
{
case 0:
itemDef.ID = "esriControls.ControlsMapZoomInFixedCommand"; //就是ESRI.ArcGIS.Controls下的类的名称
break;
case 1:
itemDef.ID = "esriControls.ControlsMapZoomOutFixedCommand";
break;
case 2:
itemDef.ID = "esriControls.ControlsMapFullExtentCommand";
itemDef.Group = true;
break;
case 3:
itemDef.ID = "esriControls.ControlsMapZoomToLastExtentBackCommand";
break;
case 4:
itemDef.ID = "esriControls.ControlsMapZoomToLastExtentForwardCommand";
break;
}
}
public int ItemCount
{
get {
return 5;
}
}
public string Name
{
get { return "Navigation"; }
}
}
二、在form—load中添加
axToolbarControl1.AddItem(new Neval(), -1, -1, false, 0, esriCommandStyles.esriCommandStyleIconAndText);
三、再创建类SubMenu同样实现IMenuDef接口
class SubMenu:IMenuDef
{
public string Caption
{
get { return "SumMenu"; }
}
public void GetItemInfo(int pos, IItemDef itemDef)
{
switch (pos)
{
case 0:
itemDef.ID = "esriContorls.ControlsSelectTool";
break;
case 1:
itemDef.ID = "esriControls.ControlsSendBackwardCommand";
break;
case 2:
itemDef.ID = "esriControls.ControlsSnappingEnabledCommand";
break;
}
}
public int ItemCount
{
get {return 3; }
}
public string Name
{
get { return "SumMenu"; }
}
}
四、在Form_load()添加如下代码:
IToolbarItem items = axToolbarControl1.GetItem(4); //4为所在工具的索引
IToolbarMenu menu = items.Menu;
menu.AddSubMenu(new SubMenu(), 2, true);//2为插入SubMenu的索引位置
toolControls添加工具项的更多相关文章
- matplotlib工具栏源码探析三(添加、删除自定义工具项)
转: matplotlib工具栏源码探析三(添加.删除自定义工具项) matplotlib工具栏源码探析二(添加.删除内置工具项)探讨了工具栏内置工具项的管理,除了内置工具项,很多场景中需要自定义工具 ...
- 工具项与菜单项实现相同的功能(DevExpress)
1.在工具栏中添加菜单项.如下:在bar1工具栏中添加菜单项this.barButtonMenuItem(包含图标) this.bar1.LinksPersistInfo.AddRange(new D ...
- [转]使用Maven添加依赖项时(Add Dependency)时,没有提示项目可用,并且在Console中,输出: Unable to update index for central|http://repo1.maven.org/maven2 。
使用Maven添加依赖项时(Add Dependency)时,没有提示项目可用,并且在Console中,输出: Unable to update index for central|http://re ...
- Dynamics CRM2013 1:N关系 sub-grid中的“添加现有项”和“添加新建项”功能详解
CRM2013中sub-grid的样式和2011中有了较大的变化,2013和2011界面对比如下 在2011的时候按钮是在ribbon区,1:N的父子关系实体直接点击添加新纪录就可以,但2013就不行 ...
- CentOS 7系统添加启动项
CentOS 7系统已经把CentOS 6的 runlevel 系统服务管理替换成了systemd.在 /etc/rc[0-6S].d 下添加启动项已经不能在系统启动的时候自动执行,需要通过新的 sy ...
- zabbix (6) 为主机添加监控项,触发器,动作
先了解一下zabbix的相关概念 监控项(iterms):一个具体的指标,比如某个人的体重. 键(key):通过定义(自定义或者zabbix自带)的key获取相应指标的具体值,比如这个人的体重50斤 ...
- Abp 添加权限项<一>
1.下载代码,数据库迁移,npm install 2.添加权限项: public static class PermissionNames { public const string Pages_Te ...
- zabbix添加监控项以及常用的键值
zabbix自身提供了丰富的监控项,下面以“cpu空闲值”为例介绍zabbix如何添加新的监控项 1.创建主机群组 配置——主机群组——创建主机群组 2.创建主机 配置——主机——创建主机 3.添 ...
- zabbix入门之添加监控项
zabbix入门之添加监控项 添加一个不带参数的监控项(system.cpu.switches) 进入"配置"-->"主机"选择某主机的"监控项 ...
随机推荐
- [刘阳Java]_快速搭建MyBatis环境_第2讲
1.MyBatis的环境配置 导入MyBatis包, mybatis-3.2.8.jar 导入MySQL驱动包, mysql-connector-java-5.1.24-bin.jar 创建表的实体类 ...
- 由Struts return SUCCESS引发的基础问题
该问题的最初来源,是源于Struts中的 return SUCCESS; 和 return "success"; 在Struts的配置文件struts.xml我们可以找到" ...
- MAC 安装j2ee.sh的办法
It says it needs the DISPLAY variable set - what do I need to set it to? Instead of saying: ./java_e ...
- AspJpeg使用 .
下载ASPJpeg的bll库,引用 一.为图片添加水印//实例化组件ASPJPEGLib.IASPJpeg objJpeg = new ASPJPEGLib.ASPJpeg();//打开源图片文件ob ...
- AngularJs自定义指令详解(8) - priority
priority 默认值为0. 当一个元素上声明两个指令,而且它们的priority一样,谁先被调用?这个需要分情况讲.下面先给个例子: <!DOCTYPE html> <html& ...
- javascript eval和JSON之间的联系
原出处:http://www.jb51.net/article/21688.htm eval函数的工作原理 eval函数会评估一个给定的含有JavaScript代码的字符串,并且试图去执行包含在字符串 ...
- 《Linux 多线程服务端编程:使用 muduo C++ 网络库》电子版上市
<Linux 多线程服务端编程:使用 muduo C++ 网络库> 电子版已在京东和亚马逊上市销售. 京东购买地址:http://e.jd.com/30149978.html 亚马逊Kin ...
- final、finally、finalize的区别
看C#知识点的时候发现的问题 1.final 修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承.因此一个类不能既被声明为 abstract的,又被声明为f ...
- Winform主窗体设计
主窗体顶部为菜单按钮,子窗体内嵌入Panel显示 界面如下: 第二步,主窗体离不开的几个方法 1,点击菜单功能,加载子窗体 private void btnOpenForm_Click(object ...
- 第四章 使用Docker镜像和仓库(二)
第四章 使用Docker镜像和仓库(二) 回顾: 开始学习之前,我先pull下来ubuntu和fedora镜像 [#9#cloudsoar@cloudsoar-virtual-machine ~]$s ...