Jake,
I think you forget to lock the overlay when you turn on or off the overlay by setting Invisible property.
Please try the following codes:
private void DrawAndLabelANiceLookingRoad_Load(object sender, EventArgs e)
{
winformsMap1.MapUnit = GeographyUnit.DecimalDegree;
winformsMap1.BackgroundOverlay.BackgroundBrush =new GeoSolidBrush(GeoColor.FromArgb(255, 233, 232, 214));
ShapeFileFeatureLayer austinStreetsShapeLayer = new ShapeFileFeatureLayer(@"..\..\SampleData\Data\austinstreets.shp");
austinStreetsShapeLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;
austinStreetsShapeLayer.ZoomLevelSet.ZoomLevel01.CustomStyles.Add(LineStyles.LocalRoad1);
ShapeFileFeatureLayer austinStreetsLabelLayer = new ShapeFileFeatureLayer(@"..\..\SampleData\Data\austinstreets.shp");
austinStreetsLabelLayer.ZoomLevelSet.ZoomLevel01.CustomStyles.Add(TextStyles.LocalRoad1("FENAME"));
austinStreetsLabelLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;
LayerOverlay staticOverlay = new LayerOverlay();
staticOverlay.Layers.Add("AustinStreetsShapeLayer", austinStreetsShapeLayer);
LayerOverlay dynamicOverlay = new LayerOverlay();
dynamicOverlay.Layers.Add("AustinStreetsLabelLayer", austinStreetsLabelLayer);
dynamicOverlay.TileCache = new FileBitmapTileCache(@"C:\temp\MapSuiteCache");
winformsMap1.Overlays.Add("StaticOverlay",staticOverlay);
winformsMap1.Overlays.Add("DynamicOverlay",dynamicOverlay);
winformsMap1.CurrentExtent = new RectangleShape(-97.749141617693908, 30.300592918607943, -97.741202279009826, 30.29492809316849);
winformsMap1.Refresh();
}
//Turn off.
private void button1_Click(object sender, EventArgs e)
{
winformsMap1.Overlays["DynamicOverlay"].Lock.EnterWriteLock();
try
{
winformsMap1.Overlays["DynamicOverlay"].IsVisible = false;
}
finally
{
winformsMap1.Overlays["DynamicOverlay"].Lock.ExitWriteLock();
}
winformsMap1.Refresh();
}
//Turn one.
private void button2_Click(object sender, EventArgs e)
{
winformsMap1.Overlays["DynamicOverlay"].Lock.EnterWriteLock();
try
{
winformsMap1.Overlays["DynamicOverlay"].IsVisible =true;
}
finally
{
winformsMap1.Overlays["DynamicOverlay"].Lock.ExitWriteLock();
}
winformsMap1.Refresh();
}
Let me know if you have any more questions.
Thanks.
Yale