Gregory,
I doubt you set the same cache direcotry for the two VE layers? Try following codes to see it works.
private void ShowHideLayer_Load(object sender, EventArgs e)
{
winformsMap1.MapUnit = GeographyUnit.Meter;
winformsMap1.BackgroundOverlay.BackgroundBrush = new GeoSolidBrush(GeoColor.GeographicColors.ShallowOcean);
string accountId = "*******";
string password = "********";
string clientIpAddress = "***.***.***.***";
string cacheDirectory = @"c:\temp1\";
VirtualEarthLayer veLayer1 = new VirtualEarthLayer(accountId, password, clientIpAddress, cacheDirectory);
veLayer1.MapType = VirtualEarthMapType.Road;
LayerOverlay layerOVerlay1 = new LayerOverlay();
layerOVerlay1.Layers.Add("veLayer1",veLayer1);
layerOVerlay1.IsBase = true;
winformsMap1.Overlays.Add("layerOVerlay1", layerOVerlay1);
string cacheDirectory2 = @"c:\temp2\";
VirtualEarthLayer veLayer2 = new VirtualEarthLayer(accountId, password, clientIpAddress, cacheDirectory2);
veLayer2.MapType = VirtualEarthMapType.AerialWithLabels;
LayerOverlay layerOVerlay2 = new LayerOverlay();
layerOVerlay2.Layers.Add("veLayer2", veLayer2);
layerOVerlay2.IsBase = true;
winformsMap1.Overlays.Add("layerOVerlay2",layerOVerlay2);
winformsMap1.CurrentExtent = new RectangleShape(-1000000, 1000000, 1000000, -1000000);
//winformsMap1.ZoomOut(99);
winformsMap1.Refresh();
}
private void cbkShowAerialWithLabelLayer_CheckedChanged(object sender, EventArgs e)
{
LayerOverlay overlay2 = (LayerOverlay)winformsMap1.Overlays["layerOVerlay2"];
overlay2.Layers["veLayer2"].IsVisible = cbkShowLayer.Checked;
winformsMap1.Refresh(winformsMap1.Overlays["layerOVerlay2"]);
}
Any more questions just feel free to let me know.
Thanks.
Yale