OnMarkerClick 事件多次触发

OnMarkerClick events fires multiple times

我尝试在左键单击标记时弹出一个消息框。单击标记时,事件被触发,弹出窗口正在显示,但它触发了多次(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");
    }
}

有人知道为什么事件会多次触发吗?谢谢!

为了确保,您可以这样做:

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;
        }
    }
}

你的代码什么时候订阅事件?多次触发可能表示没有取消订阅事件。您要取消订阅该活动吗?

Read here about unsubscribing,不这样做会导致您的代码中出现其他不良影响。虽然建议的解决方案可以在短期内解决您的问题,但我鼓励您多研究一下这个问题,以防止将来出现问题。