使用IGxDialog 对象添加数据
IGxDialog gxDlg = new GxDialogClass();
IGxObjectFilterCollection filterCol = gxDlg as IGxObjectFilterCollection;
IGxObjectFilter shpFilter = new GxFilterShapefilesClass();
filterCol.AddFilter(shpFilter, true);
IGxObjectFilter LayerFilter = new GxFilterLayersClass();
filterCol.AddFilter(LayerFilter, false);
IGxObjectFilter gdbFilter = new GxFilterFGDBFeatureClasses();
filterCol.AddFilter(gdbFilter, false);
gxDlg.Title = "浏览";
gxDlg.AllowMultiSelect = true;
IEnumGxObject pEnumGxObj;
bool bFlag = gxDlg.DoModalOpen(0, out pEnumGxObj);
if (bFlag)
{
FrmProcessing proFrm = new FrmProcessing();
proFrm.Show();
Application.DoEvents();
IGxDataset pGxDataset = pEnumGxObj.Next() as IGxDataset;
while (pGxDataset != null)
{
IDataset pDataset = pGxDataset.Dataset;
switch (pGxDataset.Type)
{
case esriDatasetType.esriDTFeatureClass:
{
IFeatureLayer pFeatureLayer = new FeatureLayerClass();
pFeatureLayer.FeatureClass = pDataset as IFeatureClass;
pFeatureLayer.Name = pDataset.Name;
m_MapControl.AddLayer(pFeatureLayer as ILayer, 0);
}
break;
case esriDatasetType.esriDTRasterDataset:
{
IRasterLayer pRasterLayer = new RasterLayerClass();
pRasterLayer.CreateFromDataset(pDataset as IRasterDataset);
pRasterLayer.Name = pDataset.Name;
m_MapControl.AddLayer(pRasterLayer as ILayer, 0);
}
break;
case esriDatasetType.esriDTTable:
{
}
break;
}
pGxDataset = pEnumGxObj.Next() as IGxDataset;
}
proFrm.Close();
m_Map = m_MapControl.Map;
}