English

FAQ: What are the properties and methods that produce a map refresh?

Question

What are the properties and methods that produce a map refresh?

Answer

The Map control object and the TrackingLayer object both provide "Refresh" methods. Calling one of these methods produces a full refresh of the entire map contents or the TrackingLayer contents. In addition, these are the properties and methods which trigger a full map refresh, unless noted otherwise below.

The following shorthand notation is used for quick reference:

BLD: BeforeLayerDraw event.
ALD: AfterLayerDraw event.
BTLD: BeforeTrackingLayerDraw event.
ATLD: AfterTrackingLayerDraw event.

"Full map refresh" means
1. one set of BLD/ALD per layer and
2. the full redraw of all layers and
3. one set of BTLD/ATLD and
4. a full redraw of the TrackingLayer.

Map methods that Refresh:

CenterAt: one full map refresh.
CopyMap: two full map refreshes.
ExportMap*: one full map refresh.
OutputMap*: one full map refresh.
Pan: one full map refresh, one extra set of BTLD/ATLD. That is, two total refreshes of the TrackingLayer.
PrintMap: one full map refresh.
Refresh: one full map refresh.
RefreshLayer: BLD/ALD for only that layer and all layers above it, as well as one set of BTLD/ATLD, and a refresh of the TrackingLayer.
RefreshRect: one full map refresh, but only inside the argument rectangle.

Map properties that Refresh:

BackColor: one full refresh, only if value changes.
BorderStyle: only one set of BTLD/ATLD and a refresh of the TrackingLayer.
CoordinateSystem: one full map refresh.
Enabled: only if value changes, and then only one set of BTLD/ATLD and a refresh of the TrackingLayer.
Extent: one full map refresh, except when used in Form_Load.
FullExtent: one full map refresh, except when used in Form_Load.
Height: one full map refresh, only if value changes.
Move: one full map refresh, only if height or width arguments change existing values.
RotationAngle: one full map refresh, only if value changes.
ScrollBars: one full map refresh, only if Map's Extent is smaller than FullExtent.
Visible: only if changing from False to True, and then only one set of BTLD/ATLD and the TrackingLayer.
VisibleRegion: only if new region touches an area outside the existing region, in which case only one set of BTLD/ATLD and the TrackingLayer.
Width: one full map refresh, only if value changes.

Layers method that will Refresh:

Add: one full map refresh.
TrackingLayer methods that Refresh:

AddEvent: only one set of BTLD/ATLD and the TrackingLayer.
ClearEvents: only one set of BTLD/ATLD and the TrackingLayer.
Refresh: only one set of BTLD/ATLD and the TrackingLayer, only if the argument is ‘True’.
RemoveEvent: only one set of BTLD/ATLD, and the TrackingLayer.
GeoEvent methods and properties that Refresh:

Move method: one set of BTLD/ATLD and the TrackingLayer, only if the location moved from is in the display extent.
MoveTo method: one set of BTLD/ATLD and the TrackingLayer, only if the location moved to is in the display extent.
Shape property: one set of BTLD/ATLD and the TrackingLayer.
Other situations that call Refresh:

Another window passing in front of the Map control: only if the other window exposes an area of the Map control that was not exposed immediately beforehand. In that case, only one set of BTLD/ATLD runs and the TrackingLayer, once per pixel move of the top window.