Private Function GetElementInContainer(ByVal container As IGraphicsContainer, ByVal name As String) As IElement container.Reset() Dim elem As IElement = container.Next While elem IsNot Nothing Dim elemProps As IElementProperties = DirectCast(elem, IElementProperties) If String.Compare(elemProps.Name, name, True) = 0 Then Return elem End If elem = container.Next End While Return Nothing End Function
Public Sub MoveElement() Dim activeview As IActiveView Dim pageLayout As IPageLayout = New PageLayoutClass() Dim name As String Dim pmxdoc As IMxDocument pmxdoc = My.ArcMap.Document 'Make pagelayout the active view pmxdoc.ActiveView = pmxdoc.PageLayout activeview = pmxdoc.ActiveView name = "1" If TypeOf activeview Is IPageLayout Then pageLayout = TryCast(activeview, IPageLayout) Dim transform2D As ITransform2D Dim elem As IElement pmxdoc = My.ArcMap.Application.Document Dim pmap As IPageLayout Dim pMapGraphicsSelect As IGraphicsContainerSelect pmap = activeview ''''''''''''''' Dim container As IGraphicsContainer = TryCast(pageLayout, IGraphicsContainer) container.Reset() elem = container.Next Do While elem IsNot Nothing pMapGraphicsSelect = TryCast(pageLayout, IGraphicsContainerSelect) Dim elemProps As IElementProperties = DirectCast(elem, IElementProperties) If String.Compare(elemProps.Name, name, True) = 0 Then pMapGraphicsSelect.SelectElement(elem) elem = pMapGraphicsSelect.SelectedElement(0) Exit Do End If elem = container.Next() Loop transform2D = TryCast(elem, ITransform2D) transform2D.Move(10, 10) Else MessageBox.Show("This tool only works in pagelayout view.") End If 'Refresh only the page layout's graphics. activeview.PartialRefresh(esriViewDrawPhase.esriViewGraphics, Nothing, Nothing) End Sub
Public Sub MoveElements() Dim activeview As IActiveView Dim pageLayout As IPageLayout = New PageLayoutClass() Dim name As String Dim pmxdoc As IMxDocument pmxdoc = My.ArcMap.Document 'Make pagelayout the active view pmxdoc.ActiveView = pmxdoc.PageLayout activeview = pmxdoc.ActiveView name = "1" If TypeOf activeview Is IPageLayout Then pageLayout = TryCast(activeview, IPageLayout) Dim transform2D As ITransform2D Dim elem As IElement pmxdoc = My.ArcMap.Application.Document Dim pmap As IPageLayout Dim pMapGraphicsSelect As IGraphicsContainerSelect pmap = activeview Dim i As Integer ''''''''''''''' Dim container As IGraphicsContainer = TryCast(pageLayout, IGraphicsContainer) container.Reset() elem = container.Next pMapGraphicsSelect = TryCast(pageLayout, IGraphicsContainerSelect) pMapGraphicsSelect.SelectAllElements() Do Until i = pMapGraphicsSelect.ElementSelectionCount - 1 'While elem IsNot Nothing Dim elemProps As IElementProperties = DirectCast(elem, IElementProperties) 'For i = 0 To pMapGraphicsSelect.ElementSelectionCount - 1 If String.Compare(elemProps.Name, name, True) = 0 Then pMapGraphicsSelect.SelectElement(elem) elem = pMapGraphicsSelect.SelectedElement(i) Exit Do End If 'elem = container.Next() 'Next i i = i + 1 Loop transform2D = TryCast(elem, ITransform2D) transform2D.Move(10, 10) pMapGraphicsSelect.UnselectAllElements() Else MessageBox.Show("This tool only works in pagelayout view.") End If 'Refresh only the page layout's graphics. activeview.PartialRefresh(esriViewDrawPhase.esriViewGraphics, Nothing, Nothing) End Sub
Aangemelde leden kunnen berichten plaatsen, updates volgen en meer. Nieuw hier? Registreer een gratis account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.