// Creates Dialog on first call and init filter private void InitBarriersDlg() { if (m_dlgBarriers == null) { // Create Barriers dialog m_dlgBarriers = new GxDialogClass(); IGxObjectFilter objFilter = null; objFilter = new GxFilterFeatureDatasetsAndFeatureClassesClass(); m_dlgBarriers.ObjectFilter = objFilter; m_dlgBarriers.Title = "Choose Barriers Layer"; } }
//使用GxDialog对话框选择要输出的数据源(要素集和(或)要素类、shapefile文件) private IEnumGxObject AddLayerWithGxDialog() { try { IGxDialog gxDlg = new GxDialogClass(); // create a data format filter IGxObjectFilter gxObjFilter = new GxFilterFeatureDatasetsAndFeatureClassesClass(); // set the properties of the open dialog gxDlg.Title = "Add Feature Datasets and/or Feature Classes"; gxDlg.ObjectFilter = gxObjFilter; gxDlg.AllowMultiSelect = true; gxDlg.RememberLocation = true; IEnumGxObject gxObjects; bool open = gxDlg.DoModalOpen(0, out gxObjects); IGxDataset gxDataset = gxObjects.Next() as IGxDataset; if (gxDataset != null) { if (gxDataset.Dataset is IFeatureClass) { IFeatureClass featureClass = gxDataset.Dataset as IFeatureClass; IFeatureDataset featureDataSet = featureClass.FeatureDataset; if (featureDataSet == null) { IWorkspaceFactory pWorkspaceFactory = new ShapefileWorkspaceFactoryClass(); featureWorkspace = pWorkspaceFactory.OpenFromFile(gxDlg.FinalLocation.FullName, this.Handle.ToInt32()) as IFeatureWorkspace; } else { featureWorkspace = featureDataSet.Workspace as IFeatureWorkspace; } } else if (gxDataset.Dataset is IFeatureDataset) { IFeatureDataset featureDataSet = gxDataset.Dataset as IFeatureDataset; featureWorkspace = featureDataSet.Workspace as IFeatureWorkspace; } } return(gxObjects); } catch { MessageBox.Show("不能打开数据集或要素类!!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); } return(null); }