ArcGIS AddIN开发:如何调用ArcMap中的选择工作空间的窗体
2016-10-07 16:44
477 查看
示例代码如下:
上述代码可以拓展为:调用ArcMap的添加图层窗口等
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的添加图层窗口等
相关文章推荐
- 初学者求教:如何调用另一个工作空间的窗体?
- c#开发中,mdi子窗体如何调用父窗体中控件
- 如何启动eclipse时提示选择工作空间||删除workspace空间的目录
- 如何删除workspace空.启动eclipse时提示的选择工作空间|
- 如何在新建的eclips的工作空间部署开发环境
- c#开发中mdi子窗体如何调用父窗体中控件
- 如何启动eclipse时提示选择工作空间||删除workspace空间的目录
- ArcGIS插件开发中跨窗体数据访问( AddIn.FromID)
- ArcGIS API for javascript开发笔记(六)——REST详解及如何使用REST API调用GP服务
- 如何在Windows窗体中调用系统调色板对话框,并获取用户所选择的颜色?
- 如何启动eclipse时提示选择工作空间||删除workspace空间的目录
- 如何启动eclipse时提示选择工作空间 || 删除workspace空间的目录
- ArcGIS AddIn调用ArcMap自带的对话框
- 如何启动eclipse时提示选择工作空间||删除workspace空间的目录
- 如何启动eclipse时提示选择工作空间||删除workspace空间的目录
- 如何启动eclipse时提示选择工作空间||删除workspace空间的目录
- 如何启动eclipse时提示选择工作空间||删除workspace空间的目录
- 怎么删除eclipse启动时工作空间里面的路径选项(如何启动eclipse时提示选择工作空间||删除workspace空间的目录)
- ArcGIS9.3 插件开发的dll如何在ArcMap等桌面端产品用起来
- 如何启动eclipse时提示选择工作空间||删除workspace空间的目录