示例代码如下:

 public static IWorkspaceName BrowseWorkspace(int hwnd,out IWorkspace ws){IGxObjectFilterCollection ipFilters = new GxDialogClass();//IGxObjectFilter ipFilter1 = new GxFilterFeatureDatasetsClass();  //要素数据集 ,导出时,IFeatureClassConverter对象无法写入Dataset中,此处隐藏掉//ipFilters.AddFilter(ipFilter1,false);IGxObjectFilter ifilt2 = new GxFilterWorkspacesClass();  //数据库工作空间,此类比较含糊,不知道具体指啥ipFilters.AddFilter(ifilt2,false);IGxObjectFilter ipFilter3 = new GxFilterFileFolderClass();  //文件工作空间ipFilters.AddFilter(ipFilter3,false);IGxDialog pGDialog = (IGxDialog)ipFilters;pGDialog.RememberLocation = true;pGDialog.Title = "请选择工作空间";pGDialog.AllowMultiSelect = false;IEnumGxObject pResultEnum = null;//IWorkspace ws = null;ws = null;IWorkspaceName wsn = null;if (pGDialog.DoModalOpen(hwnd, out pResultEnum) && pResultEnum != null){IGxObject gxObj = pResultEnum.Next();if (gxObj is IGxDatabase){IGxDatabase gxDB = gxObj as IGxDatabase;if (gxDB != null){ws = gxDB.Workspace;wsn = gxDB.WorkspaceName;}  }else if (gxObj is IGxFolder){//Todo: figure out how to decide which workspace to get for// a particular folder (shapefile, raster etc.)                    //IEnumName enumName = ((IGxFolder)gxObj).FileSystemWorkspaceNames;// for now just assume we want a shapefile ...IWorkspaceFactory wsf = new ESRI.ArcGIS.DataSourcesFile.ShapefileWorkspaceFactoryClass();ws = wsf.OpenFromFile(((IGxFile)gxObj).Path, hwnd);IDataset pOutDataset = ws as IDataset;wsn = pOutDataset.FullName as IWorkspaceName;}else if (gxObj is IGxDataset){//如果是数据集工作空间IGxDataset gxDs = gxObj as IGxDataset;if (gxDs != null){ws = gxDs.Dataset.Workspace;wsn = gxDs.DatasetName.WorkspaceName;}}Marshal.FinalReleaseComObject(pResultEnum);}pGDialog.InternalCatalog.Close();Marshal.FinalReleaseComObject(pGDialog);return wsn;}

上述代码可以拓展为:调用ArcMap的添加图层窗口等

转载于:https://www.cnblogs.com/DayDreamEveryWhere/p/5936237.html

ArcGIS AddIN开发:如何调用ArcMap中的选择工作空间的窗体相关推荐

  1. ArcGIS Engine 开发 (三)COM技术中的QueryInterface(接口查询)的实现原理和IUnknown接口

    IUnknown IUnknown 接口是组件对象模型(COM)中的基础接口.COM规格书中规定COM对象至少要实现此一接口,而且其他所有的COM接口都需要派生自IUnknown接口. IUnknow ...

  2. ArcGIS AddIN开发异常之--修饰符“static”对该项无效

    修饰符"static"对该项无效, 修饰符"internal"对该项无效. 该异常弹出的位置为Config.Designer.CS文件中相关插件的声明附近 in ...

  3. 【ArcGIS Addin开发】No GUI components found in this Add-In. Add-In version does not match

    今天使用的这个Addin工程是使用ArcObject10.6开发的,原本以为设置好visual stido版本,顺利编译就可以在ArcGIS Desktop里面打开的,可是事实却不是这样的.当添加es ...

  4. 《水经注地图服务》发布的卫星影像数据在ArcMap中调用

    (本文首发于"水经注GIS"公号,订阅"水经注GIS"公号,为你分享更多GIS技术 ) 1.概述 当有用户需要发布一个省以上的海量卫星影像数据时,我们就会强烈建 ...

  5. 用cocos2d-android开发android游戏时调用box2d中的native本地函数问题

    用cocos2d-android开发android游戏时调用box2d中的new World(Vector2,boolean)时,出现如下报错: "java.lang.Unsatisfied ...

  6. ArcGis engine开发中,FlexNet Licensing error:-42,147报错的解决办法,亲测有用!

    在AE开发(环境为VS2012+AE10.2)中,碰到一个很奇怪的问题,只要一打开VS,就报错弹出以下的错误信息界面,这个问题困扰了非常久,期间试过很多方法,很多人说删除所有控件,重新添加,然而过不了 ...

  7. 陪玩系统源码开发,H5页面中调用支付功能的实现

    最近在陪玩系统源码开发工作中,有个H5页面需要实现微信支付和支付宝支付的功能,现在已经完成,抽个时间写出来,分享给有需要的人. 第一步:先判断当前环境 判断陪玩系统源码中用户所属环境,根据环境不同,执 ...

  8. 如何在ArcMap中监听键盘鼠标事件

    昨天有个朋友想要实现一个功能,就是在ArcMap中编辑数据的时候,能够通过快捷键自动设置预定义的属性,比如,选中若干要素,按A键,就自动填充属性,按B键,则又自动填充另外的属性字段. 单就这个功能而言 ...

  9. ArcGIS Desktop开发基础(转)

    http://www.cnblogs.com/maweifeng/archive/2006/07/19/455024.html  原文地址 ArcGIS Desktop开发的类型 ○ 自定义ArcMa ...

最新文章

  1. 1136 A Delayed Palindrome 需再做
  2. 项目开发中使用IDEA创建多个maven子模块
  3. nodejs系列-翻译http
  4. 重新定义SpringCloud-SpringCloud Eureka笔记- Eureka的核心类(二)
  5. Kubernetes之yaml文件详解(汇总-详细)
  6. linux运维实战练习--用户和组管理各命令的使用
  7. PHP json_encode 中文乱码
  8. java数据类型的转换函数_JAVA中常用数据类型转换函数
  9. android canvas帧动画,html5视频,canvas,画布
  10. python命令行安装包
  11. Review-常用数学符号的英文及中文叫法
  12. 补丁KB2999226纯净版下载地址
  13. 机器学习的分类(监督学习、非监督学习、半监督学习)
  14. leetcode:448. Find All Numbers Disappeared in an Array找到所有数组中消失的数字(C++)
  15. poker网络 -2
  16. LBM中的角点处理及部分代码(以D2Q9为例)
  17. 苹果开发者平台-《测试证书》生成流程
  18. 阿奇霉素联合甲泼尼龙治疗30例小儿难治性支原体肺炎的效果及安全性探讨
  19. 制造业数字原生的OT数仓建设
  20. Java大厂面试题大全(整理版)1000+面试题附答案详解

热门文章

  1. C# winform开发:Graphics、pictureBox同时画多个矩形
  2. UITextView 用法小结
  3. 存在网路的情况下重命名SDE中数据图层错误(The orphan junction feature class cannot be renamed)...
  4. Ladda – 把加载提示效果集成到按钮中,提升用户体验
  5. 一个有第三方ebuild的网站
  6. 有关于JAVA与后端C应用UTF8字符的通信
  7. do not lie on the bed to watch pc or phones
  8. 关于LOH(Large Object Heap)及内存泄漏
  9. LINUX下文件字符集编码查看与转换并文件名编码转换
  10. TensorFlow--线性回归问题初步