OnMarkerClick事件会触发多次

时间:2018-10-29 07:34:02

标签: c# winforms gmap.net

我尝试在左击标记时弹出一个消息框。单击标记后,便触发了该事件,并显示了弹出窗口,但它触发了多次(2次)。

这是我的代码

private void gmap_mainMap_OnMarkerClick(GMapMarker item, MouseEventArgs e)
{
    if (e.Button == System.Windows.Forms.MouseButtons.Left && item.IsMouseOver){
        MessageBox.Show("Marker clicked", "Information");
    }
}

任何人都知道为什么该事件多次触发吗?谢谢!

2 个答案:

答案 0 :(得分:0)

请确保您可以执行以下操作:

private bool MarkerWasClicked = false;

private void gmap_mainMap_OnMarkerClick(GMapMarker item, MouseEventArgs e)
{
    MarkerWasClicked = false;

    if (MarkerWasClicked == false){
        if (e.Button == System.Windows.Forms.MouseButtons.Left && item.IsMouseOver){
            MessageBox.Show("Marker clicked", "Information");
            MarkerWasClicked = true;
        }
    }
}

答案 1 :(得分:0)

您的代码何时订阅该活动?多次触发可能表明没有取消订阅事件。您要取消订阅活动吗?

Read here about unsubscribing,否则可能会导致代码中出现其他不良后果。虽然建议的解决方案可以在短期内解决您的问题,但我建议您多研究一下该问题,以防止将来出现问题。