主窗體持有 `AxMapControl`,子窗體通過屬性/構造函數注入同一實例,或子窗體內嵌主窗體的 `MapControl` 容器。操作同一地圖對象天然同步。
// 主窗體
private void axMapControl1_OnExtentUpdated(object sender, IMapControlEvents2_OnExtentUpdatedEvent e) {
if (childForm != null && !childForm.IsDisposed)
childForm.SyncExtent(axMapControl1.Extent);
}
// 子窗體
public void SyncExtent(IEnvelope env) {
axMapControl1.Extent = env;
}
避免循環同步觸發無限事件 (加標志位 `isSyncing`)。方案一架構更簡潔。