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,不这样做会导致您的代码中出现其他不良影响。虽然建议的解决方案可以在短期内解决您的问题,但我鼓励您多研究一下这个问题,以防止将来出现问题。
我尝试在左键单击标记时弹出一个消息框。单击标记时,事件被触发,弹出窗口正在显示,但它触发了多次(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,不这样做会导致您的代码中出现其他不良影响。虽然建议的解决方案可以在短期内解决您的问题,但我鼓励您多研究一下这个问题,以防止将来出现问题。