IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 我的“AE之路”——菜单栏部分功能的实现与常见的问题 -> 正文阅读

[JavaScript知识库]我的“AE之路”——菜单栏部分功能的实现与常见的问题

我是一个重度拖更患者,好吧,也是因为实在是好忙····快考试了,数据结构还没有学会呢,编程面前我就是个废。今天老师又来关心起我们这个项目了,老师人真的好好啊,感觉学不会都对不起老师,所以不管怎么样还是要腾出时间好好学一下这个的。

这个博客主要还是给我自己参考记录的,里面的代码很多都是从各大网站的各个角落搬运出来的,当做练手的例子而已,主要还是用来提醒自己的。

首先是这个页面布局的问题,怎么说呢,那几个空间也确实够迷的····这里常用的还是:

一、TabControl:分多个视图用的,如地图视图和页面视图,相关的调试操作如下:

?

这里是改按钮位置的,button是下方,top是上方,一般都是下方,看我上面那个图

右下角那个“TabPages”的集合那里,点开就会出现如图的界面,可以添加多个成员,里面的“Text”可以改名字,我先随便改一下哈,效果图如下↓↓↓

?第一个页面一般放置的是mapcontrol控件,第二个是PageLayoutControl控件,如下:

?二、MenuStrip:是菜单栏,在里面输上项目该有的名字,比如我这个:

设置好之后,双击某个模块,比如“文件”,就可以进入相关功能的代码区,然后在里面添加该有的代码,慢慢摸索着实现呗。

然后我搜了一个“打开文件”的代码,如下:

 private void 打开文件ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ICommand cmd = new ControlsOpenDocCommandClass();
            cmd.OnCreate(axMapControl1.Object);
            cmd.OnClick();
        }

我很懒,“打开代码”没有改英文名,懂的都懂。

但是我发现,嗯?实现不了?为哈呀?然后我摸索了一下,发现,当“打开文件”是主按钮时,这段代码能实现,当“打开文件”是“文件”里得副按钮时,实现不了了呜呜呜呜,乌鱼子啊!孩子好难啊。

三、ContextMenuStrip:这个是鼠标右键的菜单栏,就是你右键选择图层时出现的菜单栏,比如什么打开属性表了,什么移除图层了一般都是在这,懒得截图了。代码如下:

private void axTOCControl1_OnMouseDown(object sender, ITOCControlEvents_OnMouseDownEvent e)
        {
            if (axMapControl1.LayerCount > 0)
            {
                esriTOCControlItem pItem = new esriTOCControlItem();
                //pGlobeLayer为全局变量
                pGlobeLayer = new FeatureLayerClass();
                IBasicMap pBasicMap = new MapClass();
                object pOther = new object();
                object pIndex = new object();
                //点击获取的位置
                axTOCControl1.HitTest(e.x, e.y, ref pItem, ref pBasicMap, ref pGlobeLayer, ref pOther, ref pIndex);
                //点击的是Layer的话则弹出上下文菜单
                if (e.button == 2 && pItem == esriTOCControlItem.esriTOCControlItemLayer)
                {
                    contextMenuStrip1.Show(axTOCControl1, e.x, e.y);
                }
            }

记得在整段代码上再加一句:private ILayer pGlobeLayer = null;?不然你输入pGlobeLayer绝对是画小曲线的。不过粗心的朋友会发现,自己还是实现不了这个功能。。。。。哈哈哈哈整个一无语了吧。

你是不是忘了引用了呢?嘿嘿嘿

错误?? ?4?? ?类型“ESRI.ArcGIS.Geodatabase.IDataset”在未被引用的程序集中定义。必须添加对程序集·······,系统刚刚提醒了我这段话,对头,就是忘了引用这个ESRI.ArcGIS.Geodatabase,哦,别忘了在最开始的加上using esri.arcgis.那一堆,建议是都加上,省的后期找bug了

运行后呢,鼠标右键单击图层,是有菜单栏了,但是里面的功能还是不能实现的,这个要加代码的。

对于像“打开属性表”这种会出现新窗体的功能,要新建窗体,实现如下:

选中该工程右击→“add”→“Windows Form···”,新建窗体,然后在工具包中选择DataGridView双击添加,选中后Dock 为Fill。

写代码吧,累了,困了,再说吧。

救救孩子吧,数据结构好难呜呜呜,一个指针不够还要来俩,在此奉劝大家基础一定要扎实,c语言没学好就来数据结构,多少是有一丢丢不太好的。
?

?

?

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-12-01 17:37:04  更:2021-12-01 17:38:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/21 0:36:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码