About the Use a PageLayoutControl as an overview window Sample
[C#]
Overview.cs
using System;
using System.Windows.Forms;
using ESRI.ArcGIS.esriSystem;
using ESRI.ArcGIS.SystemUI;
using ESRI.ArcGIS.Carto;
using ESRI.ArcGIS.Display;
using ESRI.ArcGIS.Geometry;
using ESRI.ArcGIS.Controls;
using ESRI.ArcGIS;
namespace Overview
{
/// <summary>
/// Summary description for Form1.
/// </summary>
public class Overview : System.Windows.Forms.Form
{
public System.Windows.Forms.TextBox txbMxPath;
public System.Windows.Forms.Button cmdLoadMxFile;
public System.Windows.Forms.Button cmdZoomPage;
public System.Windows.Forms.Label Label2;
private System.Windows.Forms.OpenFileDialog openFileDialog1;
private ESRI.ArcGIS.Controls.AxPageLayoutControl axPageLayoutControl1;
private ESRI.ArcGIS.Controls.AxPageLayoutControl axPageLayoutControl2;
private ESRI.ArcGIS.Controls.AxLicenseControl axLicenseControl1;
private IPageLayoutControl m_PageLayoutControl;
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.Container components = null;
public Overview()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
//
// TODO: Add any constructor code after InitializeComponent call
//
}
/// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose( bool disposing )
{
//Release COM objects
ESRI.ArcGIS.ADF.COMSupport.AOUninitialize.Shutdown();
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Overview));
this.txbMxPath = new System.Windows.Forms.TextBox();
this.cmdLoadMxFile = new System.Windows.Forms.Button();
this.cmdZoomPage = new System.Windows.Forms.Button();
this.Label2 = new System.Windows.Forms.Label();
this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
this.axPageLayoutControl1 = new ESRI.ArcGIS.Controls.AxPageLayoutControl();
this.axPageLayoutControl2 = new ESRI.ArcGIS.Controls.AxPageLayoutControl();
this.axLicenseControl1 = new ESRI.ArcGIS.Controls.AxLicenseControl();
((System.ComponentModel.ISupportInitialize)(this.axPageLayoutControl1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.axPageLayoutControl2)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.axLicenseControl1)).BeginInit();
this.SuspendLayout();
//
// txbMxPath
//
this.txbMxPath.AcceptsReturn = true;
this.txbMxPath.BackColor = System.Drawing.SystemColors.Window;
this.txbMxPath.Cursor = System.Windows.Forms.Cursors.IBeam;
this.txbMxPath.Enabled = false;
this.txbMxPath.Font = new System.Drawing.Font("Arial", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.txbMxPath.ForeColor = System.Drawing.SystemColors.WindowText;
this.txbMxPath.Location = new System.Drawing.Point(8, 8);
this.txbMxPath.MaxLength = 0;
this.txbMxPath.Name = "txbMxPath";
this.txbMxPath.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.txbMxPath.Size = new System.Drawing.Size(249, 19);
this.txbMxPath.TabIndex = 6;
//
// cmdLoadMxFile
//
this.cmdLoadMxFile.BackColor = System.Drawing.SystemColors.Control;
this.cmdLoadMxFile.Cursor = System.Windows.Forms.Cursors.Default;
this.cmdLoadMxFile.Font = new System.Drawing.Font("Arial", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.cmdLoadMxFile.ForeColor = System.Drawing.SystemColors.ControlText;
this.cmdLoadMxFile.Location = new System.Drawing.Point(264, 8);
this.cmdLoadMxFile.Name = "cmdLoadMxFile";
this.cmdLoadMxFile.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.cmdLoadMxFile.Size = new System.Drawing.Size(113, 25);
this.cmdLoadMxFile.TabIndex = 5;
this.cmdLoadMxFile.Text = "Load Mx File";
this.cmdLoadMxFile.UseVisualStyleBackColor = false;
this.cmdLoadMxFile.Click += new System.EventHandler(this.cmdLoadMxFile_Click);
//
// cmdZoomPage
//
this.cmdZoomPage.BackColor = System.Drawing.SystemColors.Control;
this.cmdZoomPage.Cursor = System.Windows.Forms.Cursors.Default;
this.cmdZoomPage.Font = new System.Drawing.Font("Arial", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.cmdZoomPage.ForeColor = System.Drawing.SystemColors.ControlText;
this.cmdZoomPage.Location = new System.Drawing.Point(264, 320);
this.cmdZoomPage.Name = "cmdZoomPage";
this.cmdZoomPage.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.cmdZoomPage.Size = new System.Drawing.Size(113, 25);
this.cmdZoomPage.TabIndex = 9;
this.cmdZoomPage.Text = "Zoom To Page";
this.cmdZoomPage.UseVisualStyleBackColor = false;
this.cmdZoomPage.Click += new System.EventHandler(this.cmdZoomPage_Click);
//
// Label2
//
this.Label2.BackColor = System.Drawing.SystemColors.Control;
this.Label2.Cursor = System.Windows.Forms.Cursors.Default;
this.Label2.Font = new System.Drawing.Font("Arial", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.Label2.ForeColor = System.Drawing.SystemColors.ControlText;
this.Label2.Location = new System.Drawing.Point(264, 256);
this.Label2.Name = "Label2";
this.Label2.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.Label2.Size = new System.Drawing.Size(121, 57);
this.Label2.TabIndex = 10;
this.Label2.Text = "Use the left mouse button to drag a rectangle and the right mouse button to pan." +
"";
//
// axPageLayoutControl1
//
this.axPageLayoutControl1.Location = new System.Drawing.Point(8, 32);
this.axPageLayoutControl1.Name = "axPageLayoutControl1";
this.axPageLayoutControl1.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axPageLayoutControl1.OcxState")));
this.axPageLayoutControl1.Size = new System.Drawing.Size(248, 320);
this.axPageLayoutControl1.TabIndex = 11;
this.axPageLayoutControl1.OnMouseDown += new ESRI.ArcGIS.Controls.IPageLayoutControlEvents_Ax_OnMouseDownEventHandler(this.axPageLayoutControl1_OnMouseDown);
this.axPageLayoutControl1.OnPageLayoutReplaced += new ESRI.ArcGIS.Controls.IPageLayoutControlEvents_Ax_OnPageLayoutReplacedEventHandler(this.axPageLayoutControl1_OnPageLayoutReplaced);
this.axPageLayoutControl1.OnExtentUpdated += new ESRI.ArcGIS.Controls.IPageLayoutControlEvents_Ax_OnExtentUpdatedEventHandler(this.axPageLayoutControl1_OnExtentUpdated);
//
// axPageLayoutControl2
//
this.axPageLayoutControl2.Location = new System.Drawing.Point(264, 40);
this.axPageLayoutControl2.Name = "axPageLayoutControl2";
this.axPageLayoutControl2.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axPageLayoutControl2.OcxState")));
this.axPageLayoutControl2.Size = new System.Drawing.Size(112, 176);
this.axPageLayoutControl2.TabIndex = 12;
//
// axLicenseControl1
//
this.axLicenseControl1.Enabled = true;
this.axLicenseControl1.Location = new System.Drawing.Point(24, 48);
this.axLicenseControl1.Name = "axLicenseControl1";
this.axLicenseControl1.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axLicenseControl1.OcxState")));
this.axLicenseControl1.Size = new System.Drawing.Size(32, 32);
this.axLicenseControl1.TabIndex = 13;
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(384, 358);
this.Controls.Add(this.axLicenseControl1);
this.Controls.Add(this.axPageLayoutControl2);
this.Controls.Add(this.axPageLayoutControl1);
this.Controls.Add(this.cmdZoomPage);
this.Controls.Add(this.Label2);
this.Controls.Add(this.txbMxPath);
this.Controls.Add(this.cmdLoadMxFile);
this.Name = "Form1";
this.Text = "Form1";
this.Load += new System.EventHandler(this.Form1_Load);
((System.ComponentModel.ISupportInitialize)(this.axPageLayoutControl1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.axPageLayoutControl2)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.axLicenseControl1)).EndInit();
this.ResumeLayout(false);
}
#endregion
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
if (!RuntimeManager.Bind(ProductCode.Engine))
{
if (!RuntimeManager.Bind(ProductCode.Desktop))
{
MessageBox.Show("Unable to bind to ArcGIS runtime. Application will be shut down.");
return;
}
}
Application.Run(new Overview());
}
private void Form1_Load(object sender, System.EventArgs e)
{
m_PageLayoutControl = (IPageLayoutControl) axPageLayoutControl2.Object;
//Set PageLayoutControl properties
axPageLayoutControl1.Enabled = true;
m_PageLayoutControl.Enabled = false;
axPageLayoutControl1.Appearance = esriControlsAppearance.esri3D;
m_PageLayoutControl.Appearance = esriControlsAppearance.esriFlat;
axPageLayoutControl1.BorderStyle = esriControlsBorderStyle.esriBorder;
m_PageLayoutControl.BorderStyle = esriControlsBorderStyle.esriNoBorder;
}
private void cmdLoadMxFile_Click(object sender, System.EventArgs e)
{
//Open a file dialog for selecting map documents
openFileDialog1.Title = "Browse Map Document";
openFileDialog1.Filter = "Map Documents (*.mxd)|*.mxd";
openFileDialog1.ShowDialog();
//Exit if no map document is selected
string sFilePath = openFileDialog1.FileName;
if (sFilePath == "") return;
//Validate and load the Mx document
if (axPageLayoutControl1.CheckMxFile(sFilePath))
{
txbMxPath.Text = sFilePath;
axPageLayoutControl1.MousePointer = esriControlsMousePointer.esriPointerHourglass;
axPageLayoutControl1.LoadMxFile(sFilePath,Type.Missing);
axPageLayoutControl1.MousePointer = esriControlsMousePointer.esriPointerDefault;
}
else
{
MessageBox.Show(sFilePath + " is not a valid ArcMap document");
}
}
private void cmdZoomPage_Click(object sender, System.EventArgs e)
{
//Zoom to the whole page
axPageLayoutControl1.ZoomToWholePage();
//Get the IElement interface by finding an element by its name
IElement element = m_PageLayoutControl.FindElementByName("ZoomExtent", 1);
if (element != null)
{
//Delete the element
m_PageLayoutControl.GraphicsContainer.DeleteElement(element);
//Refresh the graphics
m_PageLayoutControl.Refresh(esriViewDrawPhase.esriViewGraphics,Type.Missing, Type.Missing);
}
}
private void axPageLayoutControl1_OnMouseDown(object sender, ESRI.ArcGIS.Controls.IPageLayoutControlEvents_OnMouseDownEvent e)
{
//Zoom in
if (e.button == 1)
{
axPageLayoutControl1.Extent = axPageLayoutControl1.TrackRectangle();
}
//Pan
else if (e.button == 2)
{
axPageLayoutControl1.Pan();
}
}
private void axPageLayoutControl1_OnPageLayoutReplaced(object sender, ESRI.ArcGIS.Controls.IPageLayoutControlEvents_OnPageLayoutReplacedEvent e)
{
//Get the file path
string sFilePath = txbMxPath.Text;
//Validate and load the Mx document
if (m_PageLayoutControl.CheckMxFile(sFilePath))
{
m_PageLayoutControl.LoadMxFile(sFilePath,Type.Missing);
}
}
private void axPageLayoutControl1_OnExtentUpdated(object sender, IPageLayoutControlEvents_OnExtentUpdatedEvent e)
{
//QI for IEnvelope
IEnvelope envelope = (IEnvelope)e.newEnvelope;
//Get the IElement interface by finding an element by its name
IElement element = m_PageLayoutControl.FindElementByName("ZoomExtent", 1);
if (element != null)
{
//Delete the graphic
m_PageLayoutControl.GraphicsContainer.DeleteElement(element);
}
element = new RectangleElementClass();
//Get the IRGBColor interface
IRgbColor color = new RgbColorClass();
//Set the color properties
color.RGB = 255;
color.Transparency = 255;
//Get the ILine symbol interface
ILineSymbol outline = new SimpleLineSymbolClass();
//Set the line symbol properties
outline.Width = 10;
outline.Color = color;
//Set the color properties
color = new RgbColorClass();
color.RGB = 255;
color.Transparency = 0;
//Get the IFillSymbol properties
IFillSymbol fillSymbol = new SimpleFillSymbolClass();
//Set the fill symbol properties
fillSymbol.Color = color;
fillSymbol.Outline = outline;
//QI for IFillShapeElement interface through the IElement interface
IFillShapeElement fillShapeElement = (IFillShapeElement)element;
//Set the symbol property
fillShapeElement.Symbol = fillSymbol;
//Add the element
m_PageLayoutControl.AddElement(element, e.newEnvelope, Type.Missing, "ZoomExtent", -1);
//Refresh the graphics
m_PageLayoutControl.Refresh(esriViewDrawPhase.esriViewGraphics, Type.Missing, Type.Missing);
}
}
}
[Visual Basic .NET]
Overview.vb
Imports ESRI.ArcGIS.esriSystem
Imports ESRI.ArcGIS.SystemUI
Imports ESRI.ArcGIS.Carto
Imports ESRI.ArcGIS.Display
Imports ESRI.ArcGIS.Geometry
Imports ESRI.ArcGIS.Controls
Imports ESRI.ArcGIS
Public Class Form1
Inherits System.Windows.Forms.Form
<STAThread()> _
Shared Sub Main()
'Load runtime
If Not RuntimeManager.Bind(ProductCode.Engine) Then
If Not RuntimeManager.Bind(ProductCode.Desktop) Then
MessageBox.Show("Unable to bind to ArcGIS runtime. Application will be shut down.")
System.Environment.Exit(1) ' Force exit or other indication in the application
End If
End If
Application.Run(New Form1())
End Sub
#Region "Windows Form Designer generated code "
Public Sub New()
MyBase.New()
'This call is required by the Windows Form Designer.
InitializeComponent()
End Sub
'Form overrides dispose to clean up the component list.
Protected Overloads Overrides Sub Dispose(ByVal Disposing As Boolean)
'Release COM objects
ESRI.ArcGIS.ADF.COMSupport.AOUninitialize.Shutdown()
If Disposing Then
If Not components Is Nothing Then
components.Dispose()
End If
End If
MyBase.Dispose(Disposing)
End Sub
'Required by the Windows Form Designer
Private components As System.ComponentModel.IContainer
Public WithEvents txbMxPath As System.Windows.Forms.TextBox
Public WithEvents cmdLoadMxFile As System.Windows.Forms.Button
Public WithEvents cmdZoomPage As System.Windows.Forms.Button
Public WithEvents Label2 As System.Windows.Forms.Label
'NOTE: The following procedure is required by the Windows Form Designer
'It can be modified using the Windows Form Designer.
'Do not modify it using the code editor.
Friend WithEvents OpenFileDialog1 As System.Windows.Forms.OpenFileDialog
Friend WithEvents AxPageLayoutControl1 As ESRI.ArcGIS.Controls.AxPageLayoutControl
Friend WithEvents AxPageLayoutControl2 As ESRI.ArcGIS.Controls.AxPageLayoutControl
Friend WithEvents AxLicenseControl1 As ESRI.ArcGIS.Controls.AxLicenseControl
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
Dim resources As System.Resources.ResourceManager = New System.Resources.ResourceManager(GetType(Form1))
Me.txbMxPath = New System.Windows.Forms.TextBox
Me.cmdLoadMxFile = New System.Windows.Forms.Button
Me.cmdZoomPage = New System.Windows.Forms.Button
Me.Label2 = New System.Windows.Forms.Label
Me.OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog
Me.AxPageLayoutControl1 = New ESRI.ArcGIS.Controls.AxPageLayoutControl
Me.AxPageLayoutControl2 = New ESRI.ArcGIS.Controls.AxPageLayoutControl
Me.AxLicenseControl1 = New ESRI.ArcGIS.Controls.AxLicenseControl
CType(Me.AxPageLayoutControl1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.AxPageLayoutControl2, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.AxLicenseControl1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
'txbMxPath
'
Me.txbMxPath.AcceptsReturn = True
Me.txbMxPath.AutoSize = False
Me.txbMxPath.BackColor = System.Drawing.SystemColors.Window
Me.txbMxPath.Cursor = System.Windows.Forms.Cursors.IBeam
Me.txbMxPath.Enabled = False
Me.txbMxPath.Font = New System.Drawing.Font("Arial", 8.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.txbMxPath.ForeColor = System.Drawing.SystemColors.WindowText
Me.txbMxPath.Location = New System.Drawing.Point(8, 8)
Me.txbMxPath.MaxLength = 0
Me.txbMxPath.Name = "txbMxPath"
Me.txbMxPath.RightToLeft = System.Windows.Forms.RightToLeft.No
Me.txbMxPath.Size = New System.Drawing.Size(249, 19)
Me.txbMxPath.TabIndex = 4
Me.txbMxPath.Text = ""
'
'cmdLoadMxFile
'
Me.cmdLoadMxFile.BackColor = System.Drawing.SystemColors.Control
Me.cmdLoadMxFile.Cursor = System.Windows.Forms.Cursors.Default
Me.cmdLoadMxFile.Font = New System.Drawing.Font("Arial", 8.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.cmdLoadMxFile.ForeColor = System.Drawing.SystemColors.ControlText
Me.cmdLoadMxFile.Location = New System.Drawing.Point(264, 5)
Me.cmdLoadMxFile.Name = "cmdLoadMxFile"
Me.cmdLoadMxFile.RightToLeft = System.Windows.Forms.RightToLeft.No
Me.cmdLoadMxFile.Size = New System.Drawing.Size(113, 25)
Me.cmdLoadMxFile.TabIndex = 3
Me.cmdLoadMxFile.Text = "Load Mx File"
'
'cmdZoomPage
'
Me.cmdZoomPage.BackColor = System.Drawing.SystemColors.Control
Me.cmdZoomPage.Cursor = System.Windows.Forms.Cursors.Default
Me.cmdZoomPage.Font = New System.Drawing.Font("Arial", 8.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.cmdZoomPage.ForeColor = System.Drawing.SystemColors.ControlText
Me.cmdZoomPage.Location = New System.Drawing.Point(264, 328)
Me.cmdZoomPage.Name = "cmdZoomPage"
Me.cmdZoomPage.RightToLeft = System.Windows.Forms.RightToLeft.No
Me.cmdZoomPage.Size = New System.Drawing.Size(113, 25)
Me.cmdZoomPage.TabIndex = 2
Me.cmdZoomPage.Text = "Zoom To Page"
'
'Label2
'
Me.Label2.BackColor = System.Drawing.SystemColors.Control
Me.Label2.Cursor = System.Windows.Forms.Cursors.Default
Me.Label2.Font = New System.Drawing.Font("Arial", 8.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.Label2.ForeColor = System.Drawing.SystemColors.ControlText
Me.Label2.Location = New System.Drawing.Point(264, 264)
Me.Label2.Name = "Label2"
Me.Label2.RightToLeft = System.Windows.Forms.RightToLeft.No
Me.Label2.Size = New System.Drawing.Size(121, 57)
Me.Label2.TabIndex = 5
Me.Label2.Text = "Use the left mouse button to drag a rectangle and the right mouse button to pan." & _
""
'
'AxPageLayoutControl1
'
Me.AxPageLayoutControl1.Location = New System.Drawing.Point(8, 32)
Me.AxPageLayoutControl1.Name = "AxPageLayoutControl1"
Me.AxPageLayoutControl1.OcxState = CType(resources.GetObject("AxPageLayoutControl1.OcxState"), System.Windows.Forms.AxHost.State)
Me.AxPageLayoutControl1.Size = New System.Drawing.Size(248, 320)
Me.AxPageLayoutControl1.TabIndex = 6
'
'AxPageLayoutControl2
'
Me.AxPageLayoutControl2.Location = New System.Drawing.Point(264, 40)
Me.AxPageLayoutControl2.Name = "AxPageLayoutControl2"
Me.AxPageLayoutControl2.OcxState = CType(resources.GetObject("AxPageLayoutControl2.OcxState"), System.Windows.Forms.AxHost.State)
Me.AxPageLayoutControl2.Size = New System.Drawing.Size(120, 184)
Me.AxPageLayoutControl2.TabIndex = 7
'
'AxLicenseControl1
'
Me.AxLicenseControl1.Enabled = True
Me.AxLicenseControl1.Location = New System.Drawing.Point(32, 48)
Me.AxLicenseControl1.Name = "AxLicenseControl1"
Me.AxLicenseControl1.OcxState = CType(resources.GetObject("AxLicenseControl1.OcxState"), System.Windows.Forms.AxHost.State)
Me.AxLicenseControl1.Size = New System.Drawing.Size(200, 50)
Me.AxLicenseControl1.TabIndex = 8
'
'Form1
'
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.BackColor = System.Drawing.SystemColors.Control
Me.ClientSize = New System.Drawing.Size(387, 362)
Me.Controls.Add(Me.AxLicenseControl1)
Me.Controls.Add(Me.AxPageLayoutControl2)
Me.Controls.Add(Me.AxPageLayoutControl1)
Me.Controls.Add(Me.txbMxPath)
Me.Controls.Add(Me.cmdLoadMxFile)
Me.Controls.Add(Me.cmdZoomPage)
Me.Controls.Add(Me.Label2)
Me.Cursor = System.Windows.Forms.Cursors.Default
Me.Font = New System.Drawing.Font("Arial", 8.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.Location = New System.Drawing.Point(4, 23)
Me.Name = "Form1"
Me.RightToLeft = System.Windows.Forms.RightToLeft.No
Me.Text = "Overview"
CType(Me.AxPageLayoutControl1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.AxPageLayoutControl2, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.AxLicenseControl1, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
End Sub
#End Region
Private m_pPageLayoutControl As IPageLayoutControl
Private Sub cmdLoadMxFile_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cmdLoadMxFile.Click
'Open a file dialog for selecting map documents
OpenFileDialog1.Title = "Browse Map Document"
OpenFileDialog1.Filter = "Map Documents (*.mxd)|*.mxd"
OpenFileDialog1.ShowDialog()
'Exit if no map document is selected
Dim sFilePath As String
sFilePath = OpenFileDialog1.FileName
If sFilePath = "" Then Exit Sub
'Validate and load the Mx document
If AxPageLayoutControl1.CheckMxFile(sFilePath) Then
txbMxPath.Text = sFilePath
AxPageLayoutControl1.MousePointer = esriControlsMousePointer.esriPointerHourglass
AxPageLayoutControl1.LoadMxFile(sFilePath)
AxPageLayoutControl1.MousePointer = esriControlsMousePointer.esriPointerDefault
Else
MsgBox(sFilePath & " is not a valid ArcMap document")
End If
End Sub
Private Sub cmdZoomPage_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cmdZoomPage.Click
'Zoom to the whole page
AxPageLayoutControl1.ZoomToWholePage()
'Get the IElement interface by finding an element by its name
Dim pElement As IElement
pElement = m_pPageLayoutControl.FindElementByName("ZoomExtent")
If Not pElement Is Nothing Then
'Delete the element
m_pPageLayoutControl.GraphicsContainer.DeleteElement(pElement)
'Refresh the graphics
m_pPageLayoutControl.Refresh(esriViewDrawPhase.esriViewGraphics)
End If
End Sub
Private Sub Form1_Load(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Load
m_pPageLayoutControl = AxPageLayoutControl2.Object
'Set PageLayoutControl properties
AxPageLayoutControl1.Enabled = True
m_pPageLayoutControl.Enabled = False
AxPageLayoutControl1.Appearance = esriControlsAppearance.esri3D
m_pPageLayoutControl.Appearance = esriControlsAppearance.esriFlat
AxPageLayoutControl1.BorderStyle = esriControlsBorderStyle.esriBorder
m_pPageLayoutControl.BorderStyle = esriControlsBorderStyle.esriNoBorder
End Sub
Private Sub AxPageLayoutControl1_OnExtentUpdated(ByVal sender As Object, ByVal e As ESRI.ArcGIS.Controls.IPageLayoutControlEvents_OnExtentUpdatedEvent) Handles AxPageLayoutControl1.OnExtentUpdated
'QI for IEnvelope
Dim pEnvelope As IEnvelope
pEnvelope = e.newEnvelope
'Get the IElement interface by finding an element by its name
Dim pElement As IElement
pElement = m_pPageLayoutControl.FindElementByName("ZoomExtent")
If Not pElement Is Nothing Then
'Delete the graphic
m_pPageLayoutControl.GraphicsContainer.DeleteElement(pElement)
End If
pElement = New RectangleElementClass
'Get the IRGBColor interface
Dim pColor As IRgbColor
pColor = New RgbColorClass
'Set the color properties
pColor.RGB = 255
pColor.Transparency = 255
'Get the ILine symbol interface
Dim pOutline As ILineSymbol
pOutline = New SimpleLineSymbolClass
'Set the line symbol properties
pOutline.Width = 10
pOutline.Color = pColor
'Set the color properties
pColor = New RgbColorClass
pColor.RGB = 255
pColor.Transparency = 0
'Get the IFillSymbol properties
Dim pFillSymbol As IFillSymbol
pFillSymbol = New SimpleFillSymbolClass
'Set the fill symbol properties
pFillSymbol.Color = pColor
pFillSymbol.Outline = pOutline
'QI for IFillShapeElement interface through the IElement interface
Dim pFillShapeElement As IFillShapeElement
pFillShapeElement = pElement
'Set the symbol property
pFillShapeElement.Symbol = pFillSymbol
'Add the element
m_pPageLayoutControl.AddElement(pElement, e.newEnvelope, , "ZoomExtent")
'Refresh the graphics
m_pPageLayoutControl.Refresh(esriViewDrawPhase.esriViewGraphics, Nothing, Nothing)
End Sub
Private Sub AxPageLayoutControl1_OnMouseDown(ByVal sender As Object, ByVal e As ESRI.ArcGIS.Controls.IPageLayoutControlEvents_OnMouseDownEvent) Handles AxPageLayoutControl1.OnMouseDown
'Zoom in
If e.button = 1 Then
AxPageLayoutControl1.Extent = AxPageLayoutControl1.TrackRectangle
'Pan
ElseIf e.button = 2 Then
AxPageLayoutControl1.Pan()
End If
End Sub
Private Sub AxPageLayoutControl1_OnPageLayoutReplaced(ByVal sender As Object, ByVal e As ESRI.ArcGIS.Controls.IPageLayoutControlEvents_OnPageLayoutReplacedEvent) Handles AxPageLayoutControl1.OnPageLayoutReplaced
'Get the file path
Dim sFilePath As String
sFilePath = txbMxPath.Text
'Validate and load the Mx document
If m_pPageLayoutControl.CheckMxFile(sFilePath) Then
m_pPageLayoutControl.LoadMxFile((sFilePath))
End If
End Sub
End Class