可以参考下面的:
——————
怎么在AO中实现PageLayoutControl控件与MapControl联动,下面是AO+vb.NET程序。
1、先写一个CopyFocusMap过程
Private
Sub CopyFocusMap()
Dim i As
Integer
Try
If
Me.AxPageLayoutControl1.ActiveView.FocusMap.LayerCount > 0
Then
Me.AxPageLayoutControl1.ActiveView.FocusMap.ClearLayers()
End If
For
i = 0 To Me.AxMapControl1.Map.LayerCount -
1
Me.AxPageLayoutControl1.ActiveView.FocusMap.AddLayer(Me.AxMapControl1.Map.Layer(i))
Next
'获取
IObjectCopy
接口
Dim
pObjectCopy As
IObjectCopy
pObjectCopy = New ObjectCopy
'获取
源“Map”
Dim
pToCopyMap As
Object
pToCopyMap = Me.AxMapControl1.ActiveView.FocusMap 'm_pPactiveview.FocusMap
'获取
参与复制的源“Map”
Dim pCopiedMap As
Object
pCopiedMap = pObjectCopy.Copy(pToCopyMap)
'获取
目的“Map”
Dim pToOverwriteMap As
Object
pToOverwriteMap = Me.AxPageLayoutControl1.ActiveView.FocusMap
'复制
Map
pObjectCopy.Overwrite(pCopiedMap, pToOverwriteMap)
'刷新显示
AxPageLayoutControl1.CtlRefresh(esriViewDrawPhase.esriViewGraphics)
Catch ex As
Exception
MsgBox(ex.ToString)
End
Try
End Sub
2、在load事件中
Private Sub Form1_Load(ByVal
sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
'使得layeroutcontrol和mapcontrol一致
CopyFocusMap()
End Sub
3、当mapcontrol的extent改变的时候
Private Sub AxMapControl1_OnExtentUpdated(ByVal sender As
Object, ByVal e As
ESRI.ArcGIS.MapControl.IMapControlEvents2_OnExtentUpdatedEvent) Handles
AxMapControl1.OnExtentUpdated
'实现与AxPageLayoutControl1联动
CopyFocusMap()
End Sub
以上三步就可以实现AxPageLayoutControl1联动。