Elisa,
Of course, you could implement the way used in Map Suite Explorer, while it needs much more code. Basically, if you develop your application based on Service Edition instead of Desktop Edition, you are going the right way as it is. While, probably it needs more work to undergo.
I reviewed the code provided in the attachment, and I have 2 places not very sure:
1) Why you call the winformsMap1.Refresh() twice in your LoadLayers functionality.
If no special reason, could you remove the first call of the winforms1.Refresh which seems being called after no layer is added?
2) There are couple of places calling the DoEvents, is there some special reason? Could you try to comment out those callings?System.Windows.Forms.Application.DoEvents();
Following three shapes seem very large in size while all their visibility is set to false:
4,201,604KB OpusTrack-roads.shp
5,828,332KB qs.shp
2,351,232KB section.shp
Could you have a try to unload them to see if there is a performance boost?
layerOverlay.Layers.Add("boundary", boundary);
layerOverlay.Layers.Add("rms", rms);
layerOverlay.Layers.Add("irs", irs);
layerOverlay.Layers.Add("townships", townships);
//layerOverlay.Layers.Add("sections", sections);
//layerOverlay.Layers.Add("qsections", qsections);
layerOverlay.Layers.Add("lakes", lakes);
layerOverlay.Layers.Add("rivers", rivers);
layerOverlay.Layers.Add("railways", railways);
//layerOverlay.Layers.Add("roads", roads);
layerOverlay.Layers.Add("urban", urban);
layerOverlay.Layers.Add("privateent", privateent);
layerOverlay.Layers.Add("rural", rural);
winformsMap1.Overlays.Add("maps", layerOverlay);
//System.Windows.Forms.Application.DoEvents();
Any more questions please feel free to let me know.
Thanks.
Yale