C# 确定在c上单击哪个多边形#
我在地图上添加了多个多边形,并试图确定单击了哪个多边形。C#已经可以识别是否单击了多边形,但我需要确定单击了哪个多边形。我已经尝试了许多不同的方法,但目前我发现底部有一个错误:C# 确定在c上单击哪个多边形#,c#,google-maps,C#,Google Maps,我在地图上添加了多个多边形,并试图确定单击了哪个多边形。C#已经可以识别是否单击了多边形,但我需要确定单击了哪个多边形。我已经尝试了许多不同的方法,但目前我发现底部有一个错误: { gMapControl1.MapProvider = GMapProviders.GoogleMap; gMapControl1.Position = new PointLatLng(52.2659416, 10.5267296); GMapOverlay polygons = new
{
gMapControl1.MapProvider = GMapProviders.GoogleMap;
gMapControl1.Position = new PointLatLng(52.2659416, 10.5267296);
GMapOverlay polygons = new GMapOverlay("polygons");
List<PointLatLng> points = new List<PointLatLng>();
points.Add(new PointLatLng(52.2659416, 10.5267296));
points.Add(new PointLatLng(62.2659416, 10.5267296));
points.Add(new PointLatLng(62.2659416, 20.5267296));
points.Add(new PointLatLng(52.2659416, 20.5267296));
GMapPolygon polygon = new GMapPolygon(points, "test");
polygons.Polygons.Add(polygon);
gMapControl1.Overlays.Add(polygons);
}
private void gmap_OnPolygonClick(GMapPolygon item, MouseEventArgs e)
{
Console.WriteLine(String.Format("Polygon {0} with tag {1} was clicked",
item.Name, item.Tag));
}
{
gMapControl1.MapProvider=gmaproviders.GoogleMap;
gMapControl1.Position=新点位(52.2659416,10.5267296);
GMapOverlay多边形=新的GMapOverlay(“多边形”);
列表点=新列表();
增加点(新点位(52.2659416,10.5267296));
增加点(新点位(62.2659416,10.5267296));
增加点(新点位(62.2659416,20.5267296));
增加点(新点位(52.2659416,20.5267296));
GMapPolygon多边形=新的GMapPolygon(点,“测试”);
多边形。多边形。添加(多边形);
gMapControl1.Overlays.Add(多边形);
}
private void gmap_on Polygonclick(GMapPolygon项目,MouseEventArgs e)
{
Console.WriteLine(String.Format(“单击了带标记{1}的多边形{0}”),
item.Name,item.Tag));
}
错误CS0104“MouseEventArgs”是“System.Windows.Forms.MouseEventArgs”和“System.Windows.Input.MouseEventArgs”之间的不明确引用
必须将多边形的IshitteVisible指定为true:
polygon.IsHitTestVisible = true;
在这里找到它:
您的错误意味着您引用了
MouseEventArgs
,并且可能同时使用System.Windows.Forms
和System.Windows.Input
。将对MouseEventArgs
的引用更改为System.Windows.XXXXX.MouseEventArgs
,其中XXXXX
是您打算使用的引用。System.Windows.Forms
用于WinForms,而System.Windows.Input
用于WPF,您不应该同时使用这两种引用。您使用的是哪一个?我使用的是窗体,添加了系统,Windows.Forms删除了错误,但当我单击它时,它现在什么也不做。Form.Designer.cs条目应该是什么样子?为多边形指定的事件处理程序在哪里?也许你错过了。类似于polygon.PolygonClicked+=gmap\u OnPolygonClick代码>我在Form.designer.cs中有一个作业。但这并没有真正起作用。polygon.PolygonClicked+=gmap_OnPolygonClick;也似乎不起作用。