Controls


Supported with:
Library dependencies: System, SystemUI, Geometry, Display, Server, Output, Geodatabase, GISClient, ArcWeb, DataSourcesFile, DataSourcesGDB, DataSourcesOleDB, DataSourcesRaster, DataSourcesNetCDF, GeoDatabaseDistributed, GeoDatabaseExtensions, Carto, NetworkAnalysis, Location, GeoAnalyst, Animation, Maplex, Geoprocessing, NetworkAnalyst, Schematic, SpatialAnalyst, 3DAnalyst, GlobeCore

Additional library information: Contents, Object Model Diagram

The Controls library contains the MapControl, PageLayoutControl, TOCControl (Table of Contents), ToolbarControl, GlobeControl, SceneControl, LicenseControl and SymbologyControl together with a collection of Control Commands. The ArcGIS Engine Controls are high-level developer components that first enable you to build and extend Windows applications with ArcGIS functionality and second provide a graphical user interface (GUI). The control commands are a set of commands, tools, menus and palettes that work with the ArcGIS Engine Controls.
 
Note: In addition to the ArcGIS Engine Controls contained in this library, an ArcReaderControl and ArcReaderGlobeControl exist in the ArcGIS Desktop PublisherControls library.

The objects that implement this functionality are grouped into a number of library subsystems. These library subsystems are:

Themes and concepts common to all the ArcGIS controls

Before discussing the details of each of the controls, there are some common themes and concepts that should be understood in order to effectively build applications using them. These include embeddable componentsproperty pagesencapsulated ArcObjectseventsbuddy controls and map authoring.

For further information on Themes and concepts common to all the ArcGIS controls see:

ArcGIS Engine controls

LicenseControl

The LicenseControl is used to initialize an application with a suitable license(s) in order for it to run successfully on any machine it is deployed on to. The LicenseControl will configure the licenses at application start time when the form or dialog containing the LicenseControl is loaded. Use the LicenseControl to automatically perform license initialization within simple graphical user interface applications using the MapControl, PageLayoutControl, TOCControl, ToolbarControl, GlobeControl, SceneControl or SymbologyControl. If greater control is required over license initialization, particularly when checking out and in extension licenses (the LicenseControl will check out extension licenses for the duration of an application's life) use the AoInitialize object in the System library to programmatically perform license initialization.

For further information on LicenseControl see:

Using the LicenseControl
How to programmatically handle LicenseControl initialization failure
Building a MapViewer application using the ArcGIS Engine Controls

MapControl

The MapControl corresponds to the ‘data’ view of the ArcMap desktop application and encapsulates the Map object. Map documents preauthored with the ArcMap application can be loaded into the MapControl eliminating the need to programmatically compose the cartography. The MapControl can also be used to write map documents.

For further information on MapControl see:

Using the MapControl
How to get started with the MapControl property pages
Walkthrough: Building a MapViewer application
Sample: Arrow key and mouse wheel navigation of the MapControl's display
Sample: View CAD data in a MapControl
Sample: Draw text on a MapControl
Sample: Enable ole drop of data in the MapControl
Sample: Geo-events in a MapControl
Sample: Displaying map tips in the MapControl
Sample: Rotating the MapControl's display
Sample: Save a layer file through a MapControl application
How to synchronize the MapControl and PageLayoutControl

PageLayoutControl

The PageLayoutControl corresponds to the "layout" view of the ArcMap desktop application and encapsulates the PageLayout object. Map documents authored with the ArcMap application can be loaded into the PageLayoutControl eliminating the need to programmatically compose the cartography. It also has methods to assist in printing.

For further information on PageLayoutControl see:

Using the PageLayoutControl
How to get started with the PageLayoutControl property pages
Walkthrough: Building a MapViewer application
Sample: Copy the focus map to share it between a MapControl and PageLayoutControl
Sample: Load a map document into the PageLayoutControl
Sample: Use the PageLayoutControl as an overview window
Sample: Modify the appearance of the PageLayoutControl's page
Sample: Print preview using the PageLayoutControl
Sample: Printing with the PageLayoutContol
Sample: Save PageLayoutControl contents to a map document (*.mxd)
How to synchronize the MapControl and PageLayoutControl

GlobeControl

The GlobeControl corresponds to the '3D View' of the ArcGlobe desktop application and provides a 3D view of data on a globe surface in true geodetic location. The GlobeControl handles large datasets by using an efficient caching scheme. Note the GlobeControl requires a 3D Analyst Extension.

For further information on GlobeControl see:

Using the GlobeControl
How to get started with the GlobeControl property pages
Sample: Animation in the GlobeControl
Sample: Effects in the GlobeControl
Sample: Navigating around the GlobeControl
Sample: Creating and playing time animations using the GlobeContol

SceneControl

The SceneControl corresponds to the '3D View' of the ArcScene desktop application and provides a way to view and investigate small spatial data layers in 3D. Note the SceneControl requires a 3D Analyst Extension.

For further information on SceneControl see:

Using the SceneControl
How to get started with the SceneControl property pages
Sample: Navigating around the SceneControl
Sample: Creating and playing time animations with the SceneControl
Sample: Custom scene navigation commands

SymbologyControl

The SymbologyControl is used to display the contents of server style files (*.ServerStyle) and custom symbology. The SymbologyControl enables an end user to select an individual symbol, that can be applied to part of an application, such as a layer's renderer or an element's symbol.

For further information on SymbologyControl see:

Using the SymbologyControl
Sample: Add map surrounds using the SymbologyControl
Sample: Update a legend format with SymbologyControl area and line patches
Sample: Retrieve a color ramp from the SymbologyControl
Sample: Update a frame's background, border and shadow using the SymbologyControl
Sample: Change layer rendering using the SymbologyControl
Sample: Control text symbols using the SymbologyControl

TOCControl

The TOCControl (table of contents control) works in conjunction with a "buddy control", displaying the maps, layers and symbology that are contained in the buddy. The buddy control can be a MapControl, PageLayoutControl, GlobeControl, or SceneControl. The buddy control can be set at design-time though the TOCControl property pages (in development environments that support property page capability) or programmatically using the SetBuddyControl method when the container hosting the TOCControl is displayed.

For further information on TOCControl see:

Using the TOCControl
Walkthrough: Building a MapViewer application
Sample: Displaying a TOCControl context menu
Sample: Enable layer drag and drop in the TOCControl
Sample: Enable label editing in the TOCControl
Sample: TOCControl metadata viewer

ToolbarControl

The ToolbarControl works in conjunction with a "buddy control". The buddy control can be a MapControl, PageLayoutControl, GlobeControl or SceneControl. The buddy control can be set at design-time though the ToolbarControl property pages (in development environments that support property page capability) or programmatically using the SetBuddyControl method when the container hosting the ToolbarControl is displayed. The ToolbarControl hosts a panel of commands, tools, tool control’s, menus and palettes that work with the display of the buddy control. For example, a zoom in tool hosted on a ToolbarControl buddied to a MapControl will allow the end user to zoom in on the display of the MapControl. 

For further information on ToolbarControl see:

Using the ToolbarControl
Walkthrough: Building a MapViewer application
Sample: Change the appearance of the ToolbarControl
Sample: Use an application as the ToolbarControl buddy
Sample: Allow runtime customization of the ToolbarControl
Sample: Load and save the ToolbarControl contents to a setting file
Sample: ToolbarControl MDI Application
Sample: Menu tracking with the ToolbarControl
Sample: Add a custom bookmarks MultiItem to the ToolbarControl
Sample: Share a command pool between ToolbarControl's
Sample: Display MapControl and ToolbarControl information on a status bar
Sample: Creating toolbar menus that work with the ToolbarControl
Sample: Creating toolbar palettes that work with the ToolbarControl
Sample: Creating a zoom factor extension that works with a ToolbarControl
How to create a base command or tool to work with the controls

Control Commands

The Control Commands are commands, tools, toolcontrols, toolsets, menus and palettes that work with the ArcGIS Engine Controls to perform some specific action. For example, there is a suite of map navigation, map inquiry, feature selection, graphic element, feature editing and ink commands that work with the MapControl and PageLayoutControl; a suite of globe commands that work with the GlobeControl; a suite of scene commands that work with the SceneControl; and a suite of network and schematics commands that work with the Network Analyst and Schematics extensions respectively. You can extend this suite of control commands by creating your own customized commands that perform some specific piece of work.
 
The Control Commands are typically used in conjunction with the ToolbarControl framework and can be hosted on a ToolbarControl, a ToolbarMenu or a ToolbarPalette.
 
For a full list of the control commands, including a description of each, its associated GUID, the ArcGIS Engine Controls the command works with, and any extension required, see the article Built-in commands, menus, palettes, multi-items and toolsets.

For further information on Control Commands see:

Using the control commands
Built-in commands, menus, palettes, multi-items and toolsets
Walkthrough: Building a MapViewer application
Sample: Provide context sensitive help for a custom command
Sample: Committing ink sketches using the controls ink commands
Sample: Controls commands environment
Sample: Configure a command for a specific locale
Sample: Controls custom map navigation commands
Sample: Controls custom map selection commands
Sample: Controls custom scene navigation commands commands
Sample: Controls feature editing commands
Sample: Using hook actions in custom commands
Sample: Graphics layers ToolControl
How to create a base command or tool to work with the controls
How to use the swipe and transparency commands
How to use the flicker commands
How to use the roam command

See Also:

Building a MapViewer application
Built-in commands, menus, palettes, multi-items and toolsets