// 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";
			}
		}
예제 #2
0
        //使用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);
        }