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