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) 进入"配置"-->"主机"选择某主机的"监控项 ...
随机推荐
- Spark standalone HA
配置Spark standalone HA 主机:node1,node2,node3 master: node1,node2 slave:node2,node3 修改配置文件: node1,node3 ...
- ubuntu-apache如何解决跨域资源访问
参考:http://blog.csdn.net/emily201314/article/details/52877277 步骤1 #打开apache的headers模块 sudo a2enmod he ...
- 网络-->监控-->单位换算
The metric system In some cases when used to describe data transfer rates bits/bytes are calculated ...
- .Net中的加密解密
返回博客列表 转 .Net中的加密解密 李朝强 发布时间: 2015/11/23 12:55 阅读: 33 收藏: 3 点赞: 0 评论: 0 在一些比较重要的应用场景中,通过网络传递数据需要进行加密 ...
- 一个login
login 1.获取提交表单,保存到变量中.2.判断用户密码是否正确,利用Model类.3.验证用户是否激活.3.判断用户是否记住登录状态,是的话,将其用cookie和session分别保存.没有的话 ...
- 禁止盗链,强制回登录页面web.config配置
<system.web> <compilation debug="true" targetFramework="4.5" /> < ...
- 运用requirejs的异步加载方式
很容易让人以为是权重出问题了,但就我自己多个项目动画导出的经验来看,大 我们说程序员核心能力有以下几点:自学能力,解决问题的能力,团队合作能力.自学可以让我们在这个日新月异的时代不被淘汰;解决问题可以 ...
- Python html.parser库学习小结
分类路径:/Datazen/DataMining/Crawler/ 前段时间,一朋友让我做个小脚本,抓一下某C2C商城上竞争对手的销售/价格数据,好让他可以实时调整自己的营销策略.自己之前也有过写 ...
- AngularJS实现单页应用的原理——路由(Route)
AngularJS实现单页应用的原理——路由(Route) 路由:告诉你一个通往某个特定页面的途径 http://127.0.0.1/index.html#/start http://127.0.0. ...
- 【Java学习笔记】集合转数组---toArray()
package p2; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class ...