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
Přihlášení členové mohou přispívat, sledovat aktualizace a další. Jste tu noví? Zaregistrujte si bezplatný účet.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.