About the Displaying MapTips in the MapControl Sample
[C#]
MapTips.cs
using System;
using System.Windows.Forms;
using ESRI.ArcGIS.esriSystem;
using ESRI.ArcGIS.SystemUI;
using ESRI.ArcGIS.Carto;
using ESRI.ArcGIS.Geodatabase;
using ESRI.ArcGIS;
namespace MapTips
{
public class Form1 : System.Windows.Forms.Form
{
public System.Windows.Forms.CheckBox chkShowTips;
public System.Windows.Forms.Button cmdLoadData;
public System.Windows.Forms.ComboBox cboDataField;
public System.Windows.Forms.ComboBox cboDataLayer;
public System.Windows.Forms.Label Label2;
public System.Windows.Forms.Label Label1;
public System.Windows.Forms.Button cmdFullExtent;
public System.Windows.Forms.Label Label3;
private System.Windows.Forms.OpenFileDialog openFileDialog1;
private ESRI.ArcGIS.Controls.AxMapControl axMapControl1;
private ESRI.ArcGIS.Controls.AxLicenseControl axLicenseControl1;
internal CheckBox chkTransparent;
private System.ComponentModel.IContainer components;
public Form1()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
//
// TODO: Add any constructor code after InitializeComponent call
//
}
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(Form1));
this.chkShowTips = new System.Windows.Forms.CheckBox();
this.cmdLoadData = new System.Windows.Forms.Button();
this.cboDataField = new System.Windows.Forms.ComboBox();
this.cboDataLayer = new System.Windows.Forms.ComboBox();
this.Label2 = new System.Windows.Forms.Label();
this.Label1 = new System.Windows.Forms.Label();
this.cmdFullExtent = new System.Windows.Forms.Button();
this.Label3 = new System.Windows.Forms.Label();
this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
this.axMapControl1 = new ESRI.ArcGIS.Controls.AxMapControl();
this.axLicenseControl1 = new ESRI.ArcGIS.Controls.AxLicenseControl();
this.chkTransparent = new System.Windows.Forms.CheckBox();
((System.ComponentModel.ISupportInitialize)(this.axMapControl1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.axLicenseControl1)).BeginInit();
this.SuspendLayout();
//
// chkShowTips
//
this.chkShowTips.BackColor = System.Drawing.SystemColors.Control;
this.chkShowTips.Cursor = System.Windows.Forms.Cursors.Default;
this.chkShowTips.Font = new System.Drawing.Font("Arial", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.chkShowTips.ForeColor = System.Drawing.SystemColors.ControlText;
this.chkShowTips.Location = new System.Drawing.Point(8, 40);
this.chkShowTips.Name = "chkShowTips";
this.chkShowTips.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.chkShowTips.Size = new System.Drawing.Size(129, 25);
this.chkShowTips.TabIndex = 10;
this.chkShowTips.Text = "Show Map Tips";
this.chkShowTips.UseVisualStyleBackColor = false;
this.chkShowTips.CheckedChanged += new System.EventHandler(this.chkShowTips_CheckedChanged);
this.chkShowTips.CheckStateChanged += new System.EventHandler(this.chkShowTips_CheckStateChanged);
//
// cmdLoadData
//
this.cmdLoadData.BackColor = System.Drawing.SystemColors.Control;
this.cmdLoadData.Cursor = System.Windows.Forms.Cursors.Default;
this.cmdLoadData.Font = new System.Drawing.Font("Arial", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.cmdLoadData.ForeColor = System.Drawing.SystemColors.ControlText;
this.cmdLoadData.Location = new System.Drawing.Point(8, 8);
this.cmdLoadData.Name = "cmdLoadData";
this.cmdLoadData.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.cmdLoadData.Size = new System.Drawing.Size(113, 25);
this.cmdLoadData.TabIndex = 9;
this.cmdLoadData.Text = "Load Document...";
this.cmdLoadData.UseVisualStyleBackColor = false;
this.cmdLoadData.Click += new System.EventHandler(this.cmdLoadData_Click);
//
// cboDataField
//
this.cboDataField.BackColor = System.Drawing.SystemColors.Window;
this.cboDataField.Cursor = System.Windows.Forms.Cursors.Default;
this.cboDataField.Font = new System.Drawing.Font("Arial", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.cboDataField.ForeColor = System.Drawing.SystemColors.WindowText;
this.cboDataField.Location = new System.Drawing.Point(176, 40);
this.cboDataField.Name = "cboDataField";
this.cboDataField.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.cboDataField.Size = new System.Drawing.Size(161, 22);
this.cboDataField.TabIndex = 8;
this.cboDataField.SelectedIndexChanged += new System.EventHandler(this.cboDataField_SelectedIndexChanged);
//
// cboDataLayer
//
this.cboDataLayer.BackColor = System.Drawing.SystemColors.Window;
this.cboDataLayer.Cursor = System.Windows.Forms.Cursors.Default;
this.cboDataLayer.Font = new System.Drawing.Font("Arial", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.cboDataLayer.ForeColor = System.Drawing.SystemColors.WindowText;
this.cboDataLayer.Location = new System.Drawing.Point(176, 16);
this.cboDataLayer.Name = "cboDataLayer";
this.cboDataLayer.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.cboDataLayer.Size = new System.Drawing.Size(161, 22);
this.cboDataLayer.TabIndex = 7;
this.cboDataLayer.SelectedIndexChanged += new System.EventHandler(this.cboDataLayer_SelectedIndexChanged);
//
// 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(136, 40);
this.Label2.Name = "Label2";
this.Label2.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.Label2.Size = new System.Drawing.Size(33, 17);
this.Label2.TabIndex = 12;
this.Label2.Text = "Fields:";
//
// Label1
//
this.Label1.BackColor = System.Drawing.SystemColors.Control;
this.Label1.Cursor = System.Windows.Forms.Cursors.Default;
this.Label1.Font = new System.Drawing.Font("Arial", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.Label1.ForeColor = System.Drawing.SystemColors.ControlText;
this.Label1.Location = new System.Drawing.Point(136, 16);
this.Label1.Name = "Label1";
this.Label1.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.Label1.Size = new System.Drawing.Size(41, 17);
this.Label1.TabIndex = 11;
this.Label1.Text = "Layers:";
//
// cmdFullExtent
//
this.cmdFullExtent.BackColor = System.Drawing.SystemColors.Control;
this.cmdFullExtent.Cursor = System.Windows.Forms.Cursors.Default;
this.cmdFullExtent.Font = new System.Drawing.Font("Arial", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.cmdFullExtent.ForeColor = System.Drawing.SystemColors.ControlText;
this.cmdFullExtent.Location = new System.Drawing.Point(224, 365);
this.cmdFullExtent.Name = "cmdFullExtent";
this.cmdFullExtent.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.cmdFullExtent.Size = new System.Drawing.Size(113, 25);
this.cmdFullExtent.TabIndex = 13;
this.cmdFullExtent.Text = "Zoom to Full Extent";
this.cmdFullExtent.UseVisualStyleBackColor = false;
this.cmdFullExtent.Click += new System.EventHandler(this.cmdFullExtent_Click);
//
// Label3
//
this.Label3.BackColor = System.Drawing.SystemColors.Control;
this.Label3.Cursor = System.Windows.Forms.Cursors.Default;
this.Label3.Font = new System.Drawing.Font("Arial", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.Label3.ForeColor = System.Drawing.SystemColors.ControlText;
this.Label3.Location = new System.Drawing.Point(8, 373);
this.Label3.Name = "Label3";
this.Label3.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.Label3.Size = new System.Drawing.Size(209, 17);
this.Label3.TabIndex = 14;
this.Label3.Text = "Left mouse button to zoomin, right to pan";
//
// axMapControl1
//
this.axMapControl1.Location = new System.Drawing.Point(8, 88);
this.axMapControl1.Name = "axMapControl1";
this.axMapControl1.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axMapControl1.OcxState")));
this.axMapControl1.Size = new System.Drawing.Size(328, 272);
this.axMapControl1.TabIndex = 15;
this.axMapControl1.OnMouseDown += new ESRI.ArcGIS.Controls.IMapControlEvents2_Ax_OnMouseDownEventHandler(this.axMapControl1_OnMouseDown);
//
// axLicenseControl1
//
this.axLicenseControl1.Enabled = true;
this.axLicenseControl1.Location = new System.Drawing.Point(300, 68);
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 = 16;
//
// chkTransparent
//
this.chkTransparent.AutoSize = true;
this.chkTransparent.Location = new System.Drawing.Point(8, 65);
this.chkTransparent.Name = "chkTransparent";
this.chkTransparent.Size = new System.Drawing.Size(106, 17);
this.chkTransparent.TabIndex = 17;
this.chkTransparent.Text = "Transparent Tips";
this.chkTransparent.UseVisualStyleBackColor = true;
this.chkTransparent.CheckedChanged += new System.EventHandler(this.chkTransparent_CheckedChanged);
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(344, 400);
this.Controls.Add(this.chkTransparent);
this.Controls.Add(this.axLicenseControl1);
this.Controls.Add(this.axMapControl1);
this.Controls.Add(this.cmdFullExtent);
this.Controls.Add(this.Label3);
this.Controls.Add(this.chkShowTips);
this.Controls.Add(this.cmdLoadData);
this.Controls.Add(this.cboDataField);
this.Controls.Add(this.cboDataLayer);
this.Controls.Add(this.Label2);
this.Controls.Add(this.Label1);
this.Name = "Form1";
this.Text = "Form1";
this.Load += new System.EventHandler(this.Form1_Load);
((System.ComponentModel.ISupportInitialize)(this.axMapControl1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.axLicenseControl1)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
[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 Form1());
}
private void Form1_Load(object sender, System.EventArgs e)
{
//Disable controls
chkShowTips.Enabled = false;
chkTransparent.Enabled = false;
cboDataLayer.Enabled = false;
cboDataField.Enabled = false;
}
private void cboDataLayer_SelectedIndexChanged(object sender, System.EventArgs e)
{
//Disable field combo if feature layer is not selected and exit
if (axMapControl1.get_Layer(cboDataLayer.SelectedIndex) is IFeatureLayer == false)
{
cboDataField.Items.Clear();
cboDataField.Enabled = false;
return;
}
//Get IFeatureLayer interface
IFeatureLayer featureLayer = (IFeatureLayer) axMapControl1.get_Layer(cboDataLayer.SelectedIndex);
//Query interface for ILayerFields
ILayerFields layerFields = (ILayerFields) featureLayer;
int j = 0;
cboDataField.Items.Clear();
cboDataField.Enabled = true;
//Loop through the fields
for (int i = 0; i <= layerFields.FieldCount - 1; i++)
{
//Get IField interface
IField field = layerFields.get_Field(i);
//If the field is not the shape field
if (field.Type != esriFieldType.esriFieldTypeGeometry)
{
//Add field name to the control
cboDataField.Items.Insert(j, field.Name);
//If the field name is the display field
if (field.Name == featureLayer.DisplayField)
{
//Select the field name in the control
cboDataField.SelectedIndex = j;
}
j = j + 1;
}
}
ShowLayerTips();
}
private void chkShowTips_CheckStateChanged(object sender, System.EventArgs e)
{
ShowLayerTips();
}
private void cmdFullExtent_Click(object sender, System.EventArgs e)
{
//Zoom to full extent of data
axMapControl1.Extent = axMapControl1.FullExtent;
}
private void cmdLoadData_Click(object sender, System.EventArgs e)
{
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 map document
if (axMapControl1.CheckMxFile(sFilePath)== true)
{
axMapControl1.LoadMxFile(sFilePath,Type.Missing,"");
//Enabled MapControl
axMapControl1.Enabled = true;
}
else
{
MessageBox.Show(sFilePath + " is not a valid ArcMap document");
return;
}
//Add the layer names to combo
cboDataLayer.Items.Clear();
for (int i = 0; i <= axMapControl1.LayerCount - 1; i++)
{
cboDataLayer.Items.Insert(i, axMapControl1.get_Layer(i).Name);
}
//Select first layer in control
cboDataLayer.SelectedIndex = 0;
//Enable controls if disabled
if (chkShowTips.Enabled == false) chkShowTips.Enabled = true;
if (chkTransparent.Enabled == false) chkTransparent.Enabled = true;
if (cboDataLayer.Enabled == false) cboDataLayer.Enabled = true;
if (cboDataField.Enabled == false) cboDataField.Enabled = true;
}
private void ShowLayerTips()
{
//Loop through the maps layers
for (int i = 0; i <= axMapControl1.LayerCount - 1; i++)
{
//Get ILayer interface
ILayer layer = axMapControl1.get_Layer(i);
//If is the layer selected in the control
if (cboDataLayer.SelectedIndex == i)
{
//If want to show map tips
if (chkShowTips.CheckState == CheckState.Checked)
{
layer.ShowTips = true;
}
else
{
layer.ShowTips = false;
}
}
else
{
layer.ShowTips = false;
}
}
}
private void cboDataField_SelectedIndexChanged(object sender, System.EventArgs e)
{
//Get IFeatureLayer interface
IFeatureLayer featureLayer = (IFeatureLayer) axMapControl1.get_Layer(cboDataLayer.SelectedIndex);
//Query interface for IlayerFields
ILayerFields layerFields = (ILayerFields) featureLayer;
//Loop through the fields
for (int i = 0; i <= layerFields.FieldCount - 1; i++)
{
//Get IField interface
IField field = layerFields.get_Field(i);
//If the field name is the name selected in the control
if (field.Name == cboDataField.Text)
{
//Set the field as the display field
featureLayer.DisplayField = field.Name;
break;
}
}
}
private void axMapControl1_OnMouseDown(object sender, ESRI.ArcGIS.Controls.IMapControlEvents2_OnMouseDownEvent e)
{
//If left mouse button zoom in
if (e.button == 1)
{
axMapControl1.Extent = axMapControl1.TrackRectangle();
}
//If right mouse button pan
else if (e.button == 2)
{
axMapControl1.Pan();
}
}
private void chkShowTips_CheckedChanged(object sender, EventArgs e)
{
if (chkShowTips.CheckState == CheckState.Checked)
axMapControl1.ShowMapTips = true;
else
axMapControl1.ShowMapTips = false;
}
private void chkTransparent_CheckedChanged(object sender, EventArgs e)
{
if (chkTransparent.CheckState == CheckState.Checked)
axMapControl1.TipStyle = esriTipStyle.esriTipStyleTransparent;
else
axMapControl1.TipStyle = esriTipStyle.esriTipStyleSolid;
}
}
}
[Visual Basic .NET]
MapTips.vb
Imports ESRI.ArcGIS.esriSystem
Imports ESRI.ArcGIS.SystemUI
Imports ESRI.ArcGIS.Carto
Imports ESRI.ArcGIS.Geodatabase
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("Application shutting down. Unable to bind to ArcGIS Engine runtime.")
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 cmdFullExtent As System.Windows.Forms.Button
Public WithEvents chkShowTips As System.Windows.Forms.CheckBox
Public WithEvents cmdLoadData As System.Windows.Forms.Button
Public WithEvents cboDataField As System.Windows.Forms.ComboBox
Public WithEvents cboDataLayer As System.Windows.Forms.ComboBox
Public WithEvents Label3 As System.Windows.Forms.Label
Public WithEvents Label2 As System.Windows.Forms.Label
Public WithEvents Label1 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 AxMapControl1 As ESRI.ArcGIS.Controls.AxMapControl
Friend WithEvents chkTransparent As System.Windows.Forms.CheckBox
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(Form1))
Me.cmdFullExtent = New System.Windows.Forms.Button
Me.chkShowTips = New System.Windows.Forms.CheckBox
Me.cmdLoadData = New System.Windows.Forms.Button
Me.cboDataField = New System.Windows.Forms.ComboBox
Me.cboDataLayer = New System.Windows.Forms.ComboBox
Me.Label3 = New System.Windows.Forms.Label
Me.Label2 = New System.Windows.Forms.Label
Me.Label1 = New System.Windows.Forms.Label
Me.OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog
Me.AxMapControl1 = New ESRI.ArcGIS.Controls.AxMapControl
Me.AxLicenseControl1 = New ESRI.ArcGIS.Controls.AxLicenseControl
Me.chkTransparent = New System.Windows.Forms.CheckBox
CType(Me.AxMapControl1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.AxLicenseControl1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
'cmdFullExtent
'
Me.cmdFullExtent.BackColor = System.Drawing.SystemColors.Control
Me.cmdFullExtent.Cursor = System.Windows.Forms.Cursors.Default
Me.cmdFullExtent.Font = New System.Drawing.Font("Arial", 8.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.cmdFullExtent.ForeColor = System.Drawing.SystemColors.ControlText
Me.cmdFullExtent.Location = New System.Drawing.Point(223, 400)
Me.cmdFullExtent.Name = "cmdFullExtent"
Me.cmdFullExtent.RightToLeft = System.Windows.Forms.RightToLeft.No
Me.cmdFullExtent.Size = New System.Drawing.Size(113, 25)
Me.cmdFullExtent.TabIndex = 7
Me.cmdFullExtent.Text = "Zoom to Full Extent"
Me.cmdFullExtent.UseVisualStyleBackColor = False
'
'chkShowTips
'
Me.chkShowTips.BackColor = System.Drawing.SystemColors.Control
Me.chkShowTips.Cursor = System.Windows.Forms.Cursors.Default
Me.chkShowTips.Font = New System.Drawing.Font("Arial", 8.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.chkShowTips.ForeColor = System.Drawing.SystemColors.ControlText
Me.chkShowTips.Location = New System.Drawing.Point(8, 40)
Me.chkShowTips.Name = "chkShowTips"
Me.chkShowTips.RightToLeft = System.Windows.Forms.RightToLeft.No
Me.chkShowTips.Size = New System.Drawing.Size(129, 25)
Me.chkShowTips.TabIndex = 4
Me.chkShowTips.Text = "Show Map Tips"
Me.chkShowTips.UseVisualStyleBackColor = False
'
'cmdLoadData
'
Me.cmdLoadData.BackColor = System.Drawing.SystemColors.Control
Me.cmdLoadData.Cursor = System.Windows.Forms.Cursors.Default
Me.cmdLoadData.Font = New System.Drawing.Font("Arial", 8.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.cmdLoadData.ForeColor = System.Drawing.SystemColors.ControlText
Me.cmdLoadData.Location = New System.Drawing.Point(8, 8)
Me.cmdLoadData.Name = "cmdLoadData"
Me.cmdLoadData.RightToLeft = System.Windows.Forms.RightToLeft.No
Me.cmdLoadData.Size = New System.Drawing.Size(113, 25)
Me.cmdLoadData.TabIndex = 3
Me.cmdLoadData.Text = "Load Document..."
Me.cmdLoadData.UseVisualStyleBackColor = False
'
'cboDataField
'
Me.cboDataField.BackColor = System.Drawing.SystemColors.Window
Me.cboDataField.Cursor = System.Windows.Forms.Cursors.Default
Me.cboDataField.Font = New System.Drawing.Font("Arial", 8.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.cboDataField.ForeColor = System.Drawing.SystemColors.WindowText
Me.cboDataField.Location = New System.Drawing.Point(176, 40)
Me.cboDataField.Name = "cboDataField"
Me.cboDataField.RightToLeft = System.Windows.Forms.RightToLeft.No
Me.cboDataField.Size = New System.Drawing.Size(161, 22)
Me.cboDataField.TabIndex = 2
'
'cboDataLayer
'
Me.cboDataLayer.BackColor = System.Drawing.SystemColors.Window
Me.cboDataLayer.Cursor = System.Windows.Forms.Cursors.Default
Me.cboDataLayer.Font = New System.Drawing.Font("Arial", 8.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.cboDataLayer.ForeColor = System.Drawing.SystemColors.WindowText
Me.cboDataLayer.Location = New System.Drawing.Point(176, 16)
Me.cboDataLayer.Name = "cboDataLayer"
Me.cboDataLayer.RightToLeft = System.Windows.Forms.RightToLeft.No
Me.cboDataLayer.Size = New System.Drawing.Size(161, 22)
Me.cboDataLayer.TabIndex = 1
'
'Label3
'
Me.Label3.BackColor = System.Drawing.SystemColors.Control
Me.Label3.Cursor = System.Windows.Forms.Cursors.Default
Me.Label3.Font = New System.Drawing.Font("Arial", 8.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.Label3.ForeColor = System.Drawing.SystemColors.ControlText
Me.Label3.Location = New System.Drawing.Point(7, 400)
Me.Label3.Name = "Label3"
Me.Label3.RightToLeft = System.Windows.Forms.RightToLeft.No
Me.Label3.Size = New System.Drawing.Size(209, 17)
Me.Label3.TabIndex = 8
Me.Label3.Text = "Left mouse button to zoomin, right to pan"
'
'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(136, 42)
Me.Label2.Name = "Label2"
Me.Label2.RightToLeft = System.Windows.Forms.RightToLeft.No
Me.Label2.Size = New System.Drawing.Size(33, 17)
Me.Label2.TabIndex = 6
Me.Label2.Text = "Fields:"
'
'Label1
'
Me.Label1.BackColor = System.Drawing.SystemColors.Control
Me.Label1.Cursor = System.Windows.Forms.Cursors.Default
Me.Label1.Font = New System.Drawing.Font("Arial", 8.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.Label1.ForeColor = System.Drawing.SystemColors.ControlText
Me.Label1.Location = New System.Drawing.Point(136, 18)
Me.Label1.Name = "Label1"
Me.Label1.RightToLeft = System.Windows.Forms.RightToLeft.No
Me.Label1.Size = New System.Drawing.Size(41, 17)
Me.Label1.TabIndex = 5
Me.Label1.Text = "Layers:"
'
'AxMapControl1
'
Me.AxMapControl1.Location = New System.Drawing.Point(8, 89)
Me.AxMapControl1.Name = "AxMapControl1"
Me.AxMapControl1.OcxState = CType(resources.GetObject("AxMapControl1.OcxState"), System.Windows.Forms.AxHost.State)
Me.AxMapControl1.Size = New System.Drawing.Size(328, 296)
Me.AxMapControl1.TabIndex = 9
'
'AxLicenseControl1
'
Me.AxLicenseControl1.Enabled = True
Me.AxLicenseControl1.Location = New System.Drawing.Point(304, 68)
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 = 10
'
'chkTransparent
'
Me.chkTransparent.AutoSize = True
Me.chkTransparent.Location = New System.Drawing.Point(8, 65)
Me.chkTransparent.Name = "chkTransparent"
Me.chkTransparent.Size = New System.Drawing.Size(108, 18)
Me.chkTransparent.TabIndex = 11
Me.chkTransparent.Text = "Transparent Tips"
Me.chkTransparent.UseVisualStyleBackColor = True
'
'Form1
'
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.BackColor = System.Drawing.SystemColors.Control
Me.ClientSize = New System.Drawing.Size(350, 433)
Me.Controls.Add(Me.chkTransparent)
Me.Controls.Add(Me.AxLicenseControl1)
Me.Controls.Add(Me.AxMapControl1)
Me.Controls.Add(Me.cmdFullExtent)
Me.Controls.Add(Me.chkShowTips)
Me.Controls.Add(Me.cmdLoadData)
Me.Controls.Add(Me.cboDataField)
Me.Controls.Add(Me.cboDataLayer)
Me.Controls.Add(Me.Label3)
Me.Controls.Add(Me.Label2)
Me.Controls.Add(Me.Label1)
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 = "Map Tips"
CType(Me.AxMapControl1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.AxLicenseControl1, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
Me.PerformLayout()
End Sub
#End Region
Private Sub cboDataField_SelectedIndexChanged(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cboDataField.SelectedIndexChanged
'Get IFeatureLayer interface
Dim pFeatureLayer As IFeatureLayer
pFeatureLayer = AxMapControl1.get_Layer(cboDataLayer.SelectedIndex)
'Query interface for IlayerFields
Dim pLayerFields As ILayerFields
pLayerFields = pFeatureLayer
Dim i As Integer
Dim pField As IField
'Loop through the fields
For i = 0 To pLayerFields.FieldCount - 1
'Get IField interface
pField = pLayerFields.Field(i)
'If the field name is the name selected in the control
If pField.Name = cboDataField.Text Then
'Set the field as the display field
pFeatureLayer.DisplayField = pField.Name
Exit For
End If
Next i
End Sub
Private Sub cboDataLayer_SelectedIndexChanged(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cboDataLayer.SelectedIndexChanged
'Disable field combo if feature layer is not selected and exit
If Not TypeOf AxMapControl1.get_Layer(cboDataLayer.SelectedIndex) Is IFeatureLayer Then
cboDataField.Items.Clear()
cboDataField.Enabled = False
Exit Sub
End If
'Get IFeatureLayer interface
Dim pFeatureLayer As IFeatureLayer
pFeatureLayer = AxMapControl1.get_Layer(cboDataLayer.SelectedIndex)
'Query interface for ILayerFields
Dim pLayerFields As ILayerFields
pLayerFields = pFeatureLayer
Dim i As Integer
Dim j As Integer
j = 0
Dim pField As IField
cboDataField.Items.Clear()
cboDataField.Enabled = True
'Loop through the fields
For i = 0 To pLayerFields.FieldCount - 1
'Get IField interface
pField = pLayerFields.Field(i)
'If the field is not the shape field
If pField.Type <> esriFieldType.esriFieldTypeGeometry Then
'Add field name to the control
cboDataField.Items.Insert(j, pField.Name)
'If the field name is the display field
If pField.Name = pFeatureLayer.DisplayField Then
'Select the field name in the control
cboDataField.SelectedIndex = j
End If
j = j + 1
End If
Next i
ShowLayerTips()
End Sub
Private Sub chkShowTips_CheckStateChanged(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles chkShowTips.CheckStateChanged
ShowLayerTips()
End Sub
Private Sub cmdFullExtent_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cmdFullExtent.Click
'Zoom to full extent of data
AxMapControl1.Extent = AxMapControl1.FullExtent
End Sub
Private Sub cmdLoadData_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cmdLoadData.Click
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 map document
If AxMapControl1.CheckMxFile(sFilePath) Then
AxMapControl1.LoadMxFile(sFilePath)
'Enabled MapControl
AxMapControl1.Enabled = True
Else
MsgBox(sFilePath & " is not a valid ArcMap document")
Exit Sub
End If
'Add the layer names to combo
cboDataLayer.Items.Clear()
Dim i As Short
For i = 0 To AxMapControl1.LayerCount - 1
cboDataLayer.Items.Insert(i, AxMapControl1.get_Layer(i).Name)
Next i
'Select first layer in control
cboDataLayer.SelectedIndex = 0
'Enable controls if disabled
If chkShowTips.Enabled = False Then chkShowTips.Enabled = True
If chkTransparent.Enabled = False Then chkTransparent.Enabled = True
If cboDataLayer.Enabled = False Then cboDataLayer.Enabled = True
If cboDataField.Enabled = False Then cboDataField.Enabled = True
End Sub
Private Sub Form1_Load(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Load
'Disable controls
chkShowTips.Enabled = False
chkTransparent.Enabled = False
cboDataLayer.Enabled = False
cboDataField.Enabled = False
End Sub
Private Sub ShowLayerTips()
Dim i As Integer
Dim pLayer As ILayer
'Loop through the maps layers
For i = 0 To AxMapControl1.LayerCount - 1
'Get ILayer interface
pLayer = AxMapControl1.get_Layer(i)
'If is the layer selected in the control
If cboDataLayer.SelectedIndex = i Then
'If want to show map tips
If chkShowTips.CheckState = 1 Then
pLayer.ShowTips = True
Else
pLayer.ShowTips = False
End If
Else
pLayer.ShowTips = False
End If
Next i
End Sub
Private Overloads Sub AxMapControl1_OnMouseDown(ByVal sender As System.Object, ByVal e As ESRI.ArcGIS.Controls.IMapControlEvents2_OnMouseDownEvent) Handles AxMapControl1.OnMouseDown
'If left mouse button zoom in
If e.button = 1 Then
AxMapControl1.Extent = AxMapControl1.TrackRectangle
'If right mouse button pan
ElseIf e.button = 2 Then
AxMapControl1.Pan()
End If
End Sub
Private Sub chkShowTips_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkShowTips.CheckedChanged
If chkShowTips.CheckState = CheckState.Checked Then
AxMapControl1.ShowMapTips = True
Else
AxMapControl1.ShowMapTips = False
End If
End Sub
Private Sub chkTransparent_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkTransparent.CheckedChanged
If chkTransparent.CheckState = CheckState.Checked Then
AxMapControl1.TipStyle = esriTipStyle.esriTipStyleTransparent
Else
AxMapControl1.TipStyle = esriTipStyle.esriTipStyleSolid
End If
End Sub
End Class