public int CatchPointIndex = -1; //捕捉热点的索引 public override void MouseDown(object sender, MouseEventArgs e, CadFrame objC) //重写鼠标的按下 { CatchPointIndex = -1; //重置捕捉热点的索引 if (GetOperShape() != null) { GetOperShape().SetUnSelected(); //清除前操作对象中选中的状态 } ArrayList allShapes = GetRefCadPanel().GetCurrentShapes(); //得到画板上的所有图形 int catchPoint = -1; int i = 0; for (; i < allShapes.Count; i++) //对每个图形进行捕捉测试 { catchPoint = ((BaseShape)allShapes[i]).CatchShapPoint(GetNewMovePoint()); //捕捉集合中的一个图形 if (catchPoint > -1) { break; //捕获到后,跳出循环 } } if (catchPoint > -1) { CatchPointIndex = catchPoint; //捕获到后,将临时的热点设置到工具属性中 ((BaseShape)allShapes[i]).SetSelected(); //设置捕捉到的图形为选中状态 SetOperShape(((BaseShape)allShapes[i])); //把选中的图形设定到本类的操作图形的状态中 } GetRefCadPanel().Refresh(); //刷新画板 }
public override void MouseDown(object sender, MouseEventArgs e, CadFrame objC)//重写线的鼠标按下 { SetOperShape(new RectangleShape()); GetOperShape().SetP1(GetDownPoint()); GetOperShape().PenColor = objC.Clr; GetOperShape().Penwidth = objC.LineWidth; GetRefCadPanel().GetCurrentShapes().Add(GetOperShape());// }
public void SuperMouseDown(object sender, MouseEventArgs e, CadFrame objCad) //鼠标按下 { SetUpPoint(new Point(e.X, e.Y)); //鼠标的弹起点的设定 SetDownPoint(new Point(e.X, e.Y)); //鼠标按下点的设定 SetOldMovePoint(new Point(e.X, e.Y)); //老的鼠标移动点的设定 SetNewMovePoint(new Point(e.X, e.Y)); //新的鼠标移动点的设定 SetOldDragPoint(new Point(e.X, e.Y)); //老的鼠标拖动点的设定 SetNewDragPoint(new Point(e.X, e.Y)); //新的鼠标拖动点的设定 MouseDown(sender, e, objCad); //鼠标按下的处理 }
public abstract void MouseUp(object sender, MouseEventArgs e); //鼠标弹起的处理 public abstract void MouseDown(object sender, MouseEventArgs e, CadFrame objC); //鼠标按下的处理
public void SetRefCadPanel(CadFrame refCadPanel) { _refCadPanel = refCadPanel; }
public static Pen GetPen(CadFrame objCad)//得到画笔 { return(new Pen(objCad.Clr, objCad.LineWidth)); }