我正在尝试构建一个包含 GMapControl 的 USerControl。当我将 GMapControl 直接放在窗体上时,它会按预期工作。但是,如果我将 GMapControl 放在 UserControl 上,然后将该 UserControl 添加到表单中,则会出现错误。
例如:
我的用户控件,Map.cs:
public Map()
{
InitializeComponent();
gMapControl1.MapProvider = GMapProviders.OpenStreetMap;
gMapControl1.Position = new PointLatLng(54.6961334816182, 25.2985095977783);
gMapControl1.MinZoom = 1;
gMapControl1.MaxZoom = 24;
gMapControl1.Zoom = 9;
top = new GMapOverlay("1");
objects = new GMapOverlay("objects");
routes = new GMapOverlay("routes");
polygons = new GMapOverlay("polygons");
gMapControl1.Overlays.Add(routes);
gMapControl1.Overlays.Add(polygons);
gMapControl1.Overlays.Add(objects);
gMapControl1.Overlays.Add(top);
gMapControl1.OnMarkerClick += new MarkerClick(gMapControl1_OnMarkerClick);
gMapControl1.OnPolygonClick += new PolygonClick(gMapControl1_OnPolygonClick);
}
然后我通过将它拖到那里将它添加到我的表单中。然后我得到一个例外:
未能创建组件“地图”。错误消息如下:'System.MissingMethodException:找不到方法:'Void GMap.NET.WindowsForms.GMapControl.set_MapProvider(GMap.NET,MapProviders.GMapProvider)'。在 OpenStreetMapTest.Map..ctor()'
如果我在表单内的 UserControl 映射中具有相同的代码,则不会出现错误。此外,如果我不将 GMapControl 放在 UserControl 中,set_MapProvider 就会存在并且可以工作。
有任何想法吗?