Переключение Data Frame

0 голосов
спросил 02 Фев, 05 от Abraxx (1,140 баллов) в категории Программные продукты Esri
Как с помощью VBA переключить Data Frame (сделать активным)?

4 Ответы

0 голосов
ответил 03 Фев, 05 от Ulukbek (6,020 баллов)
Sub DataFrame()
   'в аркмапе несколько датафреймов, один из них называется "Layers"
   'после выполнения процедуры этот мап становиться активным
   Dim pMXD As IMxDocument, i As Long
   Set pMXD = ThisDocument
   If pMXD.Maps.Count > 1 Then
      For i = 0 To pMXD.Maps.Count - 1
         If pMXD.Maps.Item(i).Name = "Layers" Then
            Set pMXD.ActiveView = pMXD.Maps.Item(i)
         End If
      Next
   End If
End Sub
0 голосов
ответил 03 Фев, 05 от Abraxx (1,140 баллов)
спасибо большое! а может ещё знаете, как раскрыть/свернуть список включенных в этот Data Frame слоёв?
0 голосов
ответил 03 Фев, 05 от Alexander1 (32,520 баллов)

From:

http://forums.esri.com/Thread.asp?c=93&f=993&t=97545&mc=8#271942

Sub HideLayer()

Dim pMxDoc As IMxDocument
Dim pMap As IMap
Dim pFeatureLayer As IFeatureLayer
Dim i As Integer
  
'get the document and map
Set pMxDoc = ThisDocument
Set pMap = pMxDoc.FocusMap
  
Dim pLegendGroup As ILegendGroup
Set pLegendGroup = New LegendGroup
Dim pLegendInfo As ILegendInfo
  
  'loop through the layers and set the minus sign to plus
  For i = 0 To pMap.LayerCount - 1
   Set pFeatureLayer = pMap.Layer(i)
   Set pLegendInfo = pFeatureLayer
   Set pLegendGroup = pLegendInfo.LegendGroup(0)
   pLegendGroup.Visible = False
  Next i
  
'refresh the map
pMxDoc.ActiveView.Refresh
  
'refresh the table of contents
pMxDoc.UpdateContents
  
End Sub
0 голосов
ответил 04 Фев, 05 от Abraxx (1,140 баллов)
спасибо! хорошо что привели ссылку, я по ней нашёл именно то, что нужно :)
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...