public override void OnMouseUp(MouseEventArgs e) { if (IsMoving) { IsMoving = false; if (MoveToParentNode != null) { Root.DelNode(CurrentMoveNode); MoveToParentNode.AddNode(CurrentMoveNode); } CurrentMoveNode = null; MoveToParentNode = null; } }
public override void OnPaint(PaintEventArgs e) { Init(); //绘制原图 Root.SetGraphics(e.Graphics); Root.CalcNodeHeight(); Root.CalcNodeWidth(); Root.SelfOutRect.X = ClientSize.Width / 2 - Root.NodeOutRect.Width / 2; Root.SelfOutRect.Y = ClientSize.Height / 2; Root.AutoLayout(); Root.DrawNode(); if (CurrentSelectNode != null) { CurrentSelectNode.DrawOutLine(outlinePen); } if (!IsMoving || CurrentMoveNode == null) { return; } //绘制移动的节点 CurrentMoveNode.SelfOutRect.X = MovingPos.X - CurrentMoveNode.SelfOutRect.Width / 2; CurrentMoveNode.SelfOutRect.Y = MovingPos.Y - CurrentMoveNode.SelfOutRect.Height / 2; CurrentMoveNode.DrawSelf(moveBrush, movePen); if (MoveToParentNode == null) { return; } //绘制父节点连线 MoveToParentNode.DrawOutLine(outlinePen); CurrentMoveNode.DrawOutLine(outlinePen); ShapeHelper.DrawConnectLine(e.Graphics, outlinePen, MoveToParentNode.ConnectOutPos, CurrentMoveNode.ConnectInPos); }