/// <summary> /// 鼠标双击 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void mapControl_OnDoubleClick(object sender, IMapControlEvents2_OnDoubleClickEvent e) { if (e.button != 1) { return; } isMove = false; IPoint point = new PointClass(); point.PutCoords(e.mapX, e.mapY); var elementenum = graphicsContainer.LocateElements(point, 0); if (elementenum != null) { isLeftBtnDown = true; mapControl.CurrentTool = null; mapControl.MousePointer = esriControlsMousePointer.esriPointerCrosshair; textCtr = new MapFrame.ArcMap.Windows.TextInput(); textCtr.SetText(editElement.Text); textCtr.SetFont(new System.Drawing.Font(editElement.FontName, (float)editElement.Size)); //将arc的颜色转换为.net颜色 System.Drawing.Color color = System.Drawing.ColorTranslator.FromOle(editElement.Color.RGB); textCtr.SetColor(color); textCtr.Location = new System.Drawing.Point(e.x, e.y); mapControl.CreateControl(); mapControl.Controls.Add(textCtr); textCtr.InputFinished += InEditFinshen; } }
/// <summary> /// 执行命令 /// </summary> public void RunCommond() { mapControl.CurrentTool = null; mapControl.MousePointer = esriControlsMousePointer.esriPointerCrosshair; measureTool = new MeasureTool(this); mapControl.CreateControl();//强制创建控件 measureTool.Location = new System.Drawing.Point(0, 0); mapControl.Controls.Add(measureTool); layer = mapLogic.AddLayer("measure_layer"); RegistEvent(); }
/// <summary> /// 鼠标按下事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void mapControl_OnMouseDown(object sender, IMapControlEvents2_OnMouseDownEvent e) { if (e.button == 1 && !isControl && !isMouseDown) { textCtrl = new TextInput(); textCtrl.Location = new Point(e.x, e.y); mapControl.CreateControl();//强制创建控件 mapControl.Controls.Add(textCtrl); textCtrl.InputFinished += InputFinish; downPoint = new MapLngLat() { Lng = e.mapX, Lat = e.mapY }; isMouseDown = true; } }