About the Load a map document into the PageLayoutControl Sample
[C#]
LoadMap.cs
using System;
using System.Windows.Forms;
using ESRI.ArcGIS.esriSystem;
using ESRI.ArcGIS.Carto;
using ESRI.ArcGIS;
namespace LoadMapControl
{
public class frmMain : System.Windows.Forms.Form
{
public System.Windows.Forms.TextBox txtPath;
private System.Windows.Forms.Button cmdLoadDoc;
private System.Windows.Forms.OpenFileDialog openFileDialog1;
private ESRI.ArcGIS.Controls.AxPageLayoutControl axPageLayoutControl1;
private ESRI.ArcGIS.Controls.AxLicenseControl axLicenseControl1;
public System.ComponentModel.Container components = null;
public frmMain()
{
InitializeComponent();
}
protected override void Dispose( bool disposing )
{
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(frmMain));
this.txtPath = new System.Windows.Forms.TextBox();
this.cmdLoadDoc = new System.Windows.Forms.Button();
this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
this.axPageLayoutControl1 = new ESRI.ArcGIS.Controls.AxPageLayoutControl();
this.axLicenseControl1 = new ESRI.ArcGIS.Controls.AxLicenseControl();
((System.ComponentModel.ISupportInitialize)(this.axPageLayoutControl1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.axLicenseControl1)).BeginInit();
this.SuspendLayout();
//
// txtPath
//
this.txtPath.Enabled = false;
this.txtPath.Location = new System.Drawing.Point(8, 40);
this.txtPath.Name = "txtPath";
this.txtPath.Size = new System.Drawing.Size(352, 20);
this.txtPath.TabIndex = 1;
//
// cmdLoadDoc
//
this.cmdLoadDoc.Location = new System.Drawing.Point(232, 8);
this.cmdLoadDoc.Name = "cmdLoadDoc";
this.cmdLoadDoc.Size = new System.Drawing.Size(128, 24);
this.cmdLoadDoc.TabIndex = 2;
this.cmdLoadDoc.Text = "Load Map Document";
this.cmdLoadDoc.Click += new System.EventHandler(this.cmdLoadDoc_Click);
//
// axPageLayoutControl1
//
this.axPageLayoutControl1.Location = new System.Drawing.Point(8, 64);
this.axPageLayoutControl1.Name = "axPageLayoutControl1";
this.axPageLayoutControl1.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axPageLayoutControl1.OcxState")));
this.axPageLayoutControl1.Size = new System.Drawing.Size(352, 368);
this.axPageLayoutControl1.TabIndex = 3;
//
// axLicenseControl1
//
this.axLicenseControl1.Enabled = true;
this.axLicenseControl1.Location = new System.Drawing.Point(8, 2);
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 = 4;
//
// frmMain
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(368, 438);
this.Controls.Add(this.axLicenseControl1);
this.Controls.Add(this.axPageLayoutControl1);
this.Controls.Add(this.cmdLoadDoc);
this.Controls.Add(this.txtPath);
this.Name = "frmMain";
this.Text = "Load Map Document";
((System.ComponentModel.ISupportInitialize)(this.axPageLayoutControl1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.axLicenseControl1)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
#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 frmMain());
}
private void cmdLoadDoc_Click(object sender, System.EventArgs e)
{
//Open a file dialog for selecting map documents
openFileDialog1.Title = "Browse Map Document";
openFileDialog1.Filter = "Map Documents (*.mxd, *.mxt, *.pmf)|*.pmf; *.mxt; *.mxd";
openFileDialog1.ShowDialog();
//Exit if no map document is selected
string sFilePath = openFileDialog1.FileName;
if (sFilePath == "") return;
bool bPass, bIsMapDoc;
IMapDocument ipMapDoc;
ipMapDoc = new MapDocumentClass();
//Check if the map document is password protected
bPass = ipMapDoc.get_IsPasswordProtected(sFilePath);
if(bPass)
{
//Disable the main form
this.Enabled = false;
//Show the password dialog
frmPassword Form2 = new frmPassword();
Form2.ShowDialog (this);
int check = Form2.Check;
//OK button pressed
if (check == 1)
{
try
{
//Set a waiting cursor
Cursor.Current = Cursors.WaitCursor;
//Load the password protected map
axPageLayoutControl1.LoadMxFile(sFilePath, Form2.Password);
txtPath.Text = sFilePath;
this.Enabled = true;
//Set a default cursor
Cursor.Current = Cursors.Default;
}
catch
{
this.Enabled = true;
MessageBox.Show("The Password was incorrect!");
}
}
else
{
this.Enabled = true;
}
}
else
{
//Check whether the file is a map document
bIsMapDoc = axPageLayoutControl1.CheckMxFile(sFilePath);
if(bIsMapDoc)
{
Cursor.Current = Cursors.WaitCursor;
//Load the Mx document
axPageLayoutControl1.LoadMxFile(sFilePath, Type.Missing);
txtPath.Text = sFilePath;
//Set a default cursor
Cursor.Current = Cursors.Default;
}
else
{
MessageBox.Show(sFilePath + " is not a valid ArcMap document");
sFilePath = "";
}
}
}
}
}
[Visual Basic .NET]
LoadMap.vb
Imports ESRI.ArcGIS.esriSystem
Imports ESRI.ArcGIS.Carto
Imports ESRI.ArcGIS
Public Class frmMain
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 frmMain())
End Sub
#Region " Windows Form Designer generated code "
Public Sub New()
MyBase.New()
'This call is required by the Windows Form Designer.
InitializeComponent()
'Add any initialization after the InitializeComponent() call
End Sub
'Form overrides dispose to clean up the component list.
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
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
'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 cmdLoadMap As System.Windows.Forms.Button
Friend WithEvents txtPath As System.Windows.Forms.TextBox
Friend WithEvents AxPageLayoutControl1 As ESRI.ArcGIS.Controls.AxPageLayoutControl
Friend WithEvents AxLicenseControl1 As ESRI.ArcGIS.Controls.AxLicenseControl
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmMain))
Me.OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog
Me.txtPath = New System.Windows.Forms.TextBox
Me.cmdLoadMap = New System.Windows.Forms.Button
Me.AxPageLayoutControl1 = New ESRI.ArcGIS.Controls.AxPageLayoutControl
Me.AxLicenseControl1 = New ESRI.ArcGIS.Controls.AxLicenseControl
CType(Me.AxPageLayoutControl1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.AxLicenseControl1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
'txtPath
'
Me.txtPath.Enabled = False
Me.txtPath.Location = New System.Drawing.Point(8, 48)
Me.txtPath.Name = "txtPath"
Me.txtPath.Size = New System.Drawing.Size(304, 20)
Me.txtPath.TabIndex = 0
'
'cmdLoadMap
'
Me.cmdLoadMap.Location = New System.Drawing.Point(184, 8)
Me.cmdLoadMap.Name = "cmdLoadMap"
Me.cmdLoadMap.Size = New System.Drawing.Size(128, 32)
Me.cmdLoadMap.TabIndex = 1
Me.cmdLoadMap.Text = "Load Map Document"
'
'AxPageLayoutControl1
'
Me.AxPageLayoutControl1.Location = New System.Drawing.Point(8, 72)
Me.AxPageLayoutControl1.Name = "AxPageLayoutControl1"
Me.AxPageLayoutControl1.OcxState = CType(resources.GetObject("AxPageLayoutControl1.OcxState"), System.Windows.Forms.AxHost.State)
Me.AxPageLayoutControl1.Size = New System.Drawing.Size(304, 304)
Me.AxPageLayoutControl1.TabIndex = 2
'
'AxLicenseControl1
'
Me.AxLicenseControl1.Enabled = True
Me.AxLicenseControl1.Location = New System.Drawing.Point(8, 12)
Me.AxLicenseControl1.Name = "AxLicenseControl1"
Me.AxLicenseControl1.OcxState = CType(resources.GetObject("AxLicenseControl1.OcxState"), System.Windows.Forms.AxHost.State)
Me.AxLicenseControl1.Size = New System.Drawing.Size(32, 32)
Me.AxLicenseControl1.TabIndex = 3
'
'frmMain
'
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.ClientSize = New System.Drawing.Size(319, 382)
Me.Controls.Add(Me.AxLicenseControl1)
Me.Controls.Add(Me.AxPageLayoutControl1)
Me.Controls.Add(Me.cmdLoadMap)
Me.Controls.Add(Me.txtPath)
Me.Name = "frmMain"
Me.Text = "Load Map Document"
CType(Me.AxPageLayoutControl1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.AxLicenseControl1, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
Me.PerformLayout()
End Sub
#End Region
Private Sub cmdLoadMap_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdLoadMap.Click
'Open a file dialog for selecting map documents
OpenFileDialog1.Title = "Browse Map Document"
OpenFileDialog1.Filter = "Map Documents (*.mxd, *.mxt, *.pmf)|*.pmf; *.mxt; *.mxd"
OpenFileDialog1.ShowDialog()
'Exit if no map document is selected
Dim sFilePath As String = OpenFileDialog1.FileName
If sFilePath = "" Then
Return
End If
Dim bPass As Boolean, bIsMapDoc As Boolean
bPass = False
bIsMapDoc = False
Dim ipMapDoc As IMapDocument
ipMapDoc = New MapDocumentClass
'Check if the map document is password protected
bPass = ipMapDoc.IsPasswordProtected(sFilePath)
If (bPass) Then
'Disable the main form
Me.Enabled = False
'Show the password dialog
Dim Form2 As frmPassword = New frmPassword
Form2.ShowDialog(Me)
Dim check As Integer = Form2.Check
'OK button pressed
If (check = 1) Then
Try
'Set a waiting cursor
System.Windows.Forms.Cursor.Current = Cursors.WaitCursor
'Load the password protected map
AxPageLayoutControl1.LoadMxFile(sFilePath, Form2.Password)
txtPath.Text = sFilePath
Me.Enabled = True
'Set a default cursor
System.Windows.Forms.Cursor.Current = Cursors.Default
Catch
Me.Enabled = True
MessageBox.Show("The Password was incorrect!")
End Try
Else
Me.Enabled = True
End If
Else
'Check whether the file is a map document
bIsMapDoc = AxPageLayoutControl1.CheckMxFile(sFilePath)
If (bIsMapDoc) Then
System.Windows.Forms.Cursor.Current = Cursors.WaitCursor
'Load the Mx document
AxPageLayoutControl1.LoadMxFile(sFilePath, Type.Missing)
txtPath.Text = sFilePath
'Set a default cursor
System.Windows.Forms.Cursor.Current = Cursors.Default
Else
MessageBox.Show(sFilePath + " is not a valid ArcMap document")
sFilePath = ""
End If
End If
End Sub
End Class