C# GMap-无法检测单击多边形

C# GMap-无法检测单击多边形,c#,winforms,gmap.net,C#,Winforms,Gmap.net,IsMouseOverMarker属性检测单击标记的效果很好,但当尝试使用GMap控件的IsMouseOverPolygon属性检测用户是否单击多边形线时,它似乎不起作用 注意:GMap控件的PolygonEnabled属性设置为True OnPolygonClick事件甚至不会触发: private void gMap_OnPolygonClick(GMapPolygon item, MouseEventArgs e) { double pLat = item.From.Val

IsMouseOverMarker
属性检测单击标记的效果很好,但当尝试使用
GMap
控件的
IsMouseOverPolygon
属性检测用户是否单击多边形线时,它似乎不起作用

注意:
GMap
控件的
PolygonEnabled
属性设置为True

OnPolygonClick
事件甚至不会触发:

private void gMap_OnPolygonClick(GMapPolygon item, MouseEventArgs e) {
        double pLat = item.From.Value.Lat;
}
Map
Click
事件确实会触发,但“IsMouseOverPolygon”永远不会得到真值:

private void gMap_Click(object sender, EventArgs e) {
   if (gMap.IsMouseOverMarker) {
       MessageBox.Show("Clicked on marker and it works!");
   }

   if (gMap.IsMouseOverPolygon) {
       MessageBox.Show("clicked on line - never works");
   } 
}
我想知道我添加多边形的方式是否有问题,或者是因为在我的情况下,它只是线条:

GMapOverlay polyOverlay  = new GMapOverlay("polygons");
gMap.Overlays.Add(polyOverlay);
List<PointLatLng> points = new List<PointLatLng>();
points.Add(start);
points.Add(end);
polygon = new GMapPolygon(points, "mypolygon");
polygon.Stroke = new Pen(Color.Blue, 5);
polyOverlay.Polygons.Add(polygon);
GMapOverlay polyOverlay=新的GMapOverlay(“多边形”);
gMap.Overlays.Add(polyOverlay);
列表点=新列表();
点。添加(开始);
点。添加(结束);
多边形=新的GMapPolygon(点,“mypolygon”);
polygon.Stroke=新笔(颜色:蓝色,5);
polyOverlay.Polygons.Add(多边形);

所以,问题是:我应该如何检测鼠标点击这些线

我可以在代码中看到两个问题。首先,需要将多边形明确定义为
HitTestVisible

polygon.IsHitTestVisible = true;
其次,要设置多边形,请至少添加三个未对齐的点,并实际生成一个区域。我发现点击只会在一个实际区域被注意到,理论上一个多边形可以由两个点组成


根据上面的提示,检查
gMap.IsMouseOverPolygon
应该返回
true

如果没有确定的答案,任何人都很难帮助你,我将尝试在我的问题中添加一些代码。谢谢你的评论。我发现我的“线”不是真正的多边形这一事实很可能是问题所在。当我使用相同的坐标来创建路由时,控件能够检测到单击(正在单击的路由),而不会出现任何问题。谢谢你的回答!