private void Reload(string data) { var clientsplit = data.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries); foreach (var clientx in clientsplit) { var datas = clientx.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); var key = int.Parse(datas[0]); if (dsHinh.ContainsKey(key)) { dsHinh[key].Clear(); } else { dsHinh.Add(key, new List <BasicDraw>()); } for (int i = 1; i < datas.Length; i++) { string[] hinhsplit = datas[i].Split(new string[] { ".-." }, StringSplitOptions.RemoveEmptyEntries); var loaihinh = (Form1.DrawMode) int.Parse(hinhsplit[0]); BasicDraw bd = null; switch (loaihinh) { case Form1.DrawMode.line: bd = new LineDraw(); break; case Form1.DrawMode.rectangle: bd = new RectangleDraw(); break; case Form1.DrawMode.eplise: bd = new ElipseDraw(); break; case Form1.DrawMode.circle: bd = new CircleDraw(); break; case Form1.DrawMode.polygon: bd = new PolygonDraw(); break; } bd.Invalidate = () => Invalidate(); bd.Restore(datas[i]); dsHinh[key].Add(bd); } } if (isSV) { Updates(); } Invalidate(); }
public void PasteData(BasicDraw bd) { AddPolygon(); var Shapes = dsHinh[0]; Shapes.Add(bd); Invalidate(); Updates(); }
public virtual BasicDraw clone() { BasicDraw temp = CreateInstanceForClone(); temp.Invalidate = Invalidate; temp.isPolygon = isPolygon; temp.isFill = isFill; temp.isForcused = false; temp.penDraw = penDraw.Clone() as Pen; temp.penHL = penHL.Clone() as Pen; temp.Vertices = new List <Vertex>(); foreach (var v in Vertices) { temp.Vertices.Add(new Vertex { X = v.X, Y = v.Y }); } return(temp); }
protected override void OnMouseUp(MouseEventArgs e) { if (isDown) { isDown = false; if (DrawMode == Form1.DrawMode.polygon) { if (isDouble) { isDouble = false; AddPolygon(); } else { if (PolygonTemp.Count == 0) { if (!pStart.Equals(pEnd)) { PolygonTemp.Add(pStart); PolygonTemp.Add(pEnd); } } else if (!PolygonTemp[PolygonTemp.Count - 1].Equals(pEnd)) { PolygonTemp.Add(pEnd); } } } else if (DrawMode != Form1.DrawMode.select) { if (pEnd == pStart) { return; } BasicDraw shape = null; switch (DrawMode) { case Form1.DrawMode.line: shape = new LineDraw(pStart, pEnd, penCur); break; case Form1.DrawMode.rectangle: shape = new RectangleDraw(pStart, pEnd, penCur); break; case Form1.DrawMode.eplise: shape = new ElipseDraw(pStart, pEnd, penCur); break; case Form1.DrawMode.circle: shape = new CircleDraw(pStart, pEnd, penCur); break; } shape.Invalidate = () => Invalidate(); var Shapes = dsHinh[0]; Shapes.Add(shape); Invalidate(); Updates(); } else if (drawCur != null) { drawCur.OnMouseUp(e); Updates(); } } }