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