/// <summary> /// 初始化数据元 /// </summary> /// <param name="graphElement">索引的图元</param> /// <returns>数据元</returns> public DataElement InitDataElement(GraphElement graphElement) { // 执行逻辑操作 LogicBaseManager logicManager = Helper.GetHelper().GetLogicManager(flowChartManager.CurrentChartMode); logicManager.DoLogicOperation(flowChartManager, LogicType.InitializeDataElement, graphElement); return(initializedDataElement); }
/// <summary> /// 编辑数据元 /// </summary> /// <param name="graphElement">索引的图元</param> /// <returns>是否编辑成功</returns> public bool EditData(GraphElement graphElement) { bool success = false; DataElement dataElement = graphTable[graphElement] as DataElement; if (dataElement != null) // 找到该图元绑定的数据元 { // 执行逻辑操作 LogicBaseManager logicManager = Helper.GetHelper().GetLogicManager(flowChartManager.CurrentChartMode); success = logicManager.DoLogicOperation(flowChartManager, LogicType.Edit, graphElement); } else { MessageBox.Show("该图元没有绑定数据元!", "数据元编辑", MessageBoxButtons.OK, MessageBoxIcon.Information); } return(success); }
/// <summary> /// 键盘按下事件响应 /// </summary> /// <param name="sender">事件发送者</param> /// <param name="e">事件</param> private void canvas_KeyDown(object sender, KeyEventArgs e) { DocumentManager documentManager = DocumentManager.GetDocumentManager(); FlowChartManager flowChartManager = documentManager.CurrentFlowChartManager; graphManager.ControlMode = e.Control; graphManager.ShiftMode = e.Shift; graphManager.AltMode = e.Alt; switch (e.KeyCode) { case Keys.Enter: // 响应enter按键 { graphManager.EditDataElement(); break; } case Keys.Escape: // 响应esc按键 { graphManager.DeleteAbbreviateGraphElement(); break; } case Keys.Space: // 响应空格键 { graphManager.CurrentBackground.DebugMode = !graphManager.CurrentBackground.DebugMode; break; } case Keys.Left: // 响应左方向键 { graphManager.MoveSelectedGraphElement(new Size(-1, 0)); break; } case Keys.Up: // 响应上方向键 { graphManager.MoveSelectedGraphElement(new Size(0, -1)); break; } case Keys.Right: // 响应右方向键 { graphManager.MoveSelectedGraphElement(new Size(1, 0)); break; } case Keys.Down: // 响应下方向键 { graphManager.MoveSelectedGraphElement(new Size(0, 1)); break; } case Keys.Delete: // 响应delete按键 { graphManager.DeleteSelectedGraphElement(); break; } case Keys.D1: // 响应1按键 { // 执行逻辑操作 LogicBaseManager logicManager = Helper.GetHelper().GetLogicManager(flowChartManager.CurrentChartMode); object[] logicData = new object[2]; logicData[0] = 1; logicData[1] = (sender as Canvas).PointToClient(Cursor.Position); logicManager.DoLogicOperation(flowChartManager, LogicType.CreateAtPoint, logicData); break; } case Keys.NumPad1: // 响应1按键 { goto case Keys.D1; } case Keys.D2: // 响应2按键 { // 执行逻辑操作 LogicBaseManager logicManager = Helper.GetHelper().GetLogicManager(flowChartManager.CurrentChartMode); object[] logicData = new object[2]; logicData[0] = 2; logicData[1] = (sender as Canvas).PointToClient(Cursor.Position); logicManager.DoLogicOperation(flowChartManager, LogicType.CreateAtPoint, logicData); break; } case Keys.NumPad2: // 响应2按键 { goto case Keys.D2; } case Keys.D3: // 响应3按键 { // 执行逻辑操作 LogicBaseManager logicManager = Helper.GetHelper().GetLogicManager(flowChartManager.CurrentChartMode); object[] logicData = new object[2]; logicData[0] = 3; logicData[1] = (sender as Canvas).PointToClient(Cursor.Position); logicManager.DoLogicOperation(flowChartManager, LogicType.CreateAtPoint, logicData); break; } case Keys.NumPad3: // 响应3按键 { goto case Keys.D3; } case Keys.D4: // 响应4按键 { // 执行逻辑操作 LogicBaseManager logicManager = Helper.GetHelper().GetLogicManager(flowChartManager.CurrentChartMode); object[] logicData = new object[2]; logicData[0] = 4; logicData[1] = (sender as Canvas).PointToClient(Cursor.Position); logicManager.DoLogicOperation(flowChartManager, LogicType.CreateAtPoint, logicData); break; } case Keys.NumPad4: // 响应4按键 { goto case Keys.D4; } case Keys.D5: // 响应5按键 { // 执行逻辑操作 LogicBaseManager logicManager = Helper.GetHelper().GetLogicManager(flowChartManager.CurrentChartMode); object[] logicData = new object[2]; logicData[0] = 5; logicData[1] = (sender as Canvas).PointToClient(Cursor.Position); logicManager.DoLogicOperation(flowChartManager, LogicType.CreateAtPoint, logicData); break; } case Keys.NumPad5: // 响应5按键 { goto case Keys.D5; } case Keys.Oemplus: // 响应+按键 { graphManager.CurrentCanvas.AutoScroll = false; graphManager.AdjustCanvasScale(1.1f); documentManager.RefreshCanvasScaleDisplay(); break; } case Keys.OemMinus: // 响应-按键 { graphManager.CurrentCanvas.AutoScroll = false; graphManager.AdjustCanvasScale(0.9f); documentManager.RefreshCanvasScaleDisplay(); break; } case Keys.Oemcomma: // 逗号 { graphManager.SelectLineInSlotContainer(); break; } case Keys.OemPeriod: // 句号 { graphManager.SelectLineOutSlotContainer(); break; } case Keys.F5: // 刷新绘图板 { graphManager.RefreshRegion(); break; } } }