打开“浏览”对话框,并允许您选择一个或多个项目项、门户项或 本地磁盘或网络磁盘中可用的项目。
Dim openDlg = New OpenItemDialog
'打开项目对话框
openDlg.Title = "打开项目"
openDlg.Filter = ItemFilters.Composite_AddToMap
Dim result1 As Boolean = openDlg.ShowDialog
If result1 = True Then
Dim Item = openDlg.Items.First()
'返回全路径
Dim sjk_qtj = Item.Path
'返回数据库
Dim sjk_tj = Item.PhysicalPath
'返回要素类
Dim sjk_ysl = Item.Name
End If
详解:
- AlwaysUseInitialLocation:如果指定,请始终使用 InitialLocation。如果未指定,则初始位置可能是使用当前筛选器打开的最后一个位置。 BrowseFilter:获取或设置用于将“浏览”对话框中列出的项限制为子集的 BrowseProjectFilter 适用于特定任务。
- Filter:获取或设置用于将“浏览”对话框中列出的项限制为子集的筛选器 适用于特定任务。
- InitialLocation:获取或设置要在“浏览”对话框中显示的初始位置。
- Items:获取在“浏览”对话框中选择的项。
- MultiSelect:获取和设置“浏览”对话框是否支持多个项选择。
- Title:获取或设置“浏览”对话框的标题。
调用方法:ShowDialog
一:打开项目工程
dim addToProjectDialog as OpenItemDialog = new OpenItemDialog()
With addToProjectDialog
.Title = "加载工程"
.InitialLocation = "C:\Data\NewYork\Counties\Maps" '起始位置
.MultiSelect = true '允许多选
.Filter = ItemFilters.Composite_Maps_Import '过滤类型
End With
dim ok as Boolean = addToMapDialog.ShowDialog()
if ok = true then
dim selectedItems as IEnumerable(of Item) = addToMapDialog.Items
for each selectedItem as Item in selectedItems
MapFactory.Instance.CreateMapFromItem(selectedItem)
next
End if
二:打开地理数据库内容
dim openDlg = new OpenItemDialog
With openDlg
.Title = "选择要素类"
.InitialLocation = "C:\Data"
.MultiSelect = false
.BrowseFilter = BrowseProjectFilter.GetFilter(ArcGIS.Desktop.Catalog.ItemFilters.GeodatabaseItems_All)
End with
DIM bool AS Boolean = openDlg.ShowDialog()
if openDlg.Items.Count = 0 THEN
EXIT SUB
END IF
await QueuedTask.Run(SUB()
DIM item = openDlg.Items.First()
if ItemFactory.Instance.CanGetDataset(item)=TRUE THEN
DIM ds = ItemFactory.Instance.GetDataset(item))
DIM name = ds.GetName()
DIM path = ds.GetPath()
if ds is ArcGIS.Core.Data.FeatureClass =TRUE THEN
fc=DS
DIM featureLayerParams = new FeatureLayerCreationParams(fc)
MapMemberIndex = 0
END IF
DIM layer = LayerFactory.Instance.CreateLayer(OF FeatureLayer)(featureLayerParams, MapView.Active.Map)
END IF
END SUB)