Gregory,
I think there is no interfere between track and your ModeInteractiveOverlay, the problem is caused by the sample code.
If you use the original code from code community, it will throw exception when you try to set TrackMode of TrackOverlay. Because that code just focus on how to implement the functions of ModeInteractiveOverlay, if you want to do more things, like you said that you want to do track either, you need change code a little bit like following:
private void TestForm_Load(object sender, EventArgs e)
{
winformsMap1.MapUnit = GeographyUnit.DecimalDegree;
winformsMap1.CurrentExtent = new RectangleShape(-125, 47, -67, 25);
winformsMap1.BackgroundOverlay.BackgroundBrush = new GeoSolidBrush(GeoColor.FromArgb(255, 198, 255, 255));
//Displays the World Map Kit as a background.
ThinkGeo.MapSuite.DesktopEdition.WorldMapKitWmsDesktopOverlay worldMapKitDesktopOverlay = new ThinkGeo.MapSuite.DesktopEdition.WorldMapKitWmsDesktopOverlay();
winformsMap1.Overlays.Add(worldMapKitDesktopOverlay);
//Adds the ModeInteractiveOverlay to the InteractiveOverlays collection of the map.
//winformsMap1.InteractiveOverlays.Clear();
modeInteractiveOverlay = new ModeInteractiveOverlay();
modeInteractiveOverlay.MapMode = ModeInteractiveOverlay.Mode.TrackZoomIn;
winformsMap1.InteractiveOverlays[winformsMap1.InteractiveOverlays.Count - 1] = modeInteractiveOverlay;
winformsMap1.Refresh();
}
private void button_Click(object sender, EventArgs e)
{
Button button = sender as Button;
if (button != null)
{
switch (button.Name)
{
case "btnTrackNormal":
winformsMap1.TrackOverlay.TrackMode = TrackMode.None;
break;
case "btnTrackPoint":
winformsMap1.TrackOverlay.TrackMode = TrackMode.Point;
break;
case "btnTrackLine":
winformsMap1.TrackOverlay.TrackMode = TrackMode.Line;
break;
case "btnTrackRectangle":
winformsMap1.TrackOverlay.TrackMode = TrackMode.Rectangle;
break;
case "btnTrackSquare":
winformsMap1.TrackOverlay.TrackMode = TrackMode.Square;
break;
case "btnTrackPolygon":
winformsMap1.TrackOverlay.TrackMode = TrackMode.Polygon;
break;
case "btnTrackCircle":
winformsMap1.TrackOverlay.TrackMode = TrackMode.Circle;
break;
case "btnTrackEllipse":
winformsMap1.TrackOverlay.TrackMode = TrackMode.Ellipse;
break;
default:
winformsMap1.TrackOverlay.TrackMode = TrackMode.None;
break;
}
}
}
Please let me know if you have more questions.
Thanks
James