/// <summary> /// 释放 /// </summary> public void Dispose() { if (mapControl != null) { mapControl.OnMouseDown -= mapControl_OnMouseDown; mapControl.OnMouseUp -= mapControl_OnMouseUp; mapControl.OnMouseMove -= mapControl_OnMouseMove; mapControl.OnMouseMove -= mapControl_OnMouseMove_Cursor; mapControl = null; } this.editMarker = null; }
/// <summary> /// 鼠标点击事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void mapControl_OnMouseDown(object sender, IMapControlEvents2_OnMouseDownEvent e) { IGraphicsContainer gc = layer as IGraphicsContainer; IPoint point = new PointClass(); point.PutCoords(e.mapX, e.mapY); var elementenum = gc.LocateElements(point, 0); if (MarkerMouseDownEvent != null && elementenum != null) { editMarker = elementenum.Next() as EditMarker; editMarker.markerSelected = true; mapControl.OnMouseMove += new IMapControlEvents2_Ax_OnMouseMoveEventHandler(mapControl_OnMouseMove); mapControl.OnMouseUp += new IMapControlEvents2_Ax_OnMouseUpEventHandler(mapControl_OnMouseUp); MarkerMouseDownEvent(editMarker, e); } }
/// <summary> /// 鼠标弹起事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void mapControl_OnMouseUp(object sender, IMapControlEvents2_OnMouseUpEvent e) { IGraphicsContainer gc = layer as IGraphicsContainer; IPoint point = new PointClass(); point.PutCoords(e.mapX, e.mapY); var elementenum = gc.LocateElements(point, 0); if (elementenum != null) { editMarker = elementenum.Next() as EditMarker; editMarker.markerSelected = false; } if (MarkerMouseUpEvent != null) { MarkerMouseUpEvent(editMarker, null); } mapControl.OnMouseUp -= mapControl_OnMouseUp; mapControl.OnMouseMove -= mapControl_OnMouseMove; }