private void deleteGraphicsPath(GraphicsObject gObject) { try { g.DrawPath(clearPen, gObject.gPath); listGObject.Remove(gObject); drawCollection(listGObject, blackPen); } catch (System.ArgumentNullException) { } catch (System.NullReferenceException) { //MessageBox.Show("Попытка вызова пустого класса?"); } }
private void imageBox_MouseClick(object sender, MouseEventArgs e) { try { switch (typeEdit) { case "drawText": timer1.Enabled = false; listGObject.Add(drawText(e.X, e.Y, stf.text, blackPen )); drawCollection(listGObject, blackPen); // typeEdit = null; break; case "drawRetangle": timer1.Enabled = false; g.Clear(foneColor); listGObject.Add(drawRetangle(e.X, e.Y, blackPen)); drawCollection(listGObject, blackPen); // рисуем фигуры typeEdit = null; // фигура поставлена break; case "edit": if (checkBox1.Checked) deleteGraphicsPath(searchGpaphicsPath(listGObject, e.X, e.Y)); else { gObject = searchGpaphicsPath(listGObject, e.X, e.Y); listGObject.Remove(gObject); lenght = gObject.lenght(); height = gObject.height(); stf.text = gObject.text; typeEdit = "editMove"; timer1.Enabled = true; } break; case "editMove": firstStart = true; switch (gObject.type) { case "line": gObject.setLine(bx, by, bx + lenght, by + height); g.DrawPath(clearPen, gObject.gPath); gObject.setLine(e.X, e.Y, e.X + lenght, e.Y + height); bx = e.X; by = e.Y; g.DrawPath(blackPen, gObject.gPath); listGObject.Add(gObject); typeEdit = "edit"; timerStop = true; break; case "retangle": gObject.setRetangle(bx, by, gObject.x2, gObject.y2); g.DrawPath(clearPen, gObject.gPath); gObject.setRetangle(e.X, e.Y, gObject.x2, gObject.y2); bx = e.X; by = e.Y; g.DrawPath(blackPen, gObject.gPath); listGObject.Add(gObject); typeEdit = "edit"; timerStop = true; break; case "text": drawText(bx, by, stf.text, clearPen); listGObject.Add(drawText(e.X, e.Y, stf.text, clearPen)); typeEdit = "edit"; timerStop = true; break; case "lineAndText": drawLineAndText(bx, by, bx + lenght, by + height, stf.text, clearPen); listGObject.Add(drawLineAndText(e.X, e.Y, x1 + lenght, by + height, stf.text, blackPen)); typeEdit = "edit"; timerStop = true; break; } break; default: return; } } catch (System.ArgumentNullException) { typeEdit = "edit"; } catch (System.NullReferenceException) { typeEdit = "edit"; } }
private GraphicsObject drawText(int x, int y, string text, Pen pen) { gObject = new GraphicsObject("text"); gObject.x1 = x; gObject.y1 = y; gObject.text = text; if (gObject.Create()) { g.DrawPath(pen, gObject.gPath); return gObject; } else { MessageBox.Show("Не указан текст!"); typeEdit = null; return null; } }
private GraphicsObject drawRetangle(int x, int y, Pen pen) { gObject = new GraphicsObject("retangle"); if (gObject.setRetangle(x, y, (int)retLength.Value, (int)retHeight.Value)) { // Debug1.setInfo(gObject.zoneX1, gObject.zoneX11, gObject.zoneY1, gObject.zoneY11); g.DrawPath(pen, gObject.gPath); return gObject; } else return null; }
private GraphicsObject drawLineAndText(int x1, int y1, int x2, int y2, string text, Pen pen) { gObject = new GraphicsObject("lineAndText"); gObject.x1 = x1; gObject.y1 = y1; gObject.x2 = x2; gObject.y2 = y2; gObject.text = text; if (gObject.Create()) { g.DrawPath(pen, gObject.gPath); return gObject; } else { MessageBox.Show("Не указан текст!"); typeEdit = null; return null; } }
private GraphicsObject drawLine(int x1, int y1, int x2, int y2, Pen pen) { gObject = new GraphicsObject("line"); if (gObject.setLine(x1, y1, x2, y2)) { // Debug1.setInfo(gObject.zoneX1, gObject.zoneX11, gObject.zoneY1, gObject.zoneY11); g.DrawPath(pen, gObject.gPath); return gObject; } else return null; }
// загрузчик моделей private string binaryLoad(string fileName) { FileStream myStream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read); BinaryReader BR = new BinaryReader(myStream); GraphicsObject sgo; listGObject.Clear(); string typeModel = BR.ReadString(); // читает тип модели label2.Text = BR.ReadString(); label3.Text = BR.ReadString(); label4.Text = BR.ReadString(); while(BR.PeekChar() != - 1) { sgo = new GraphicsObject(); sgo.type = BR.ReadString(); sgo.text = BR.ReadString(); sgo.x1 = BR.ReadInt32(); sgo.x2 = BR.ReadInt32(); sgo.y1 = BR.ReadInt32(); sgo.y2 = BR.ReadInt32(); sgo.Create(); listGObject.Add(sgo); } BR.Close(); myStream.Close(); g.Clear(foneColor); drawCollection(listGObject, blackPen); // MessageBox.Show(typeModel); return typeModel; }
private void imageBox_MouseClick(object sender, MouseEventArgs e) { try { if (typeEdit == 5) { if (gObject.type == "line") { gObject.setLine(bx, by, bx + lenght, by + height); g.DrawPath(clearPen, gObject.gPath); gObject.setLine(e.X, e.Y, e.X + lenght, e.Y + height); bx = e.X; by = e.Y; g.DrawPath(blackPen, gObject.gPath); listGObject.Add(gObject); typeEdit = 0; timer1.Enabled = false; } if (gObject.type == "retangle") { gObject.setRetangle(bx, by, gObject.x2, gObject.y2); g.DrawPath(clearPen, gObject.gPath); gObject.setRetangle(e.X, e.Y, gObject.x2, gObject.y2); bx = e.X; by = e.Y; g.DrawPath(blackPen, gObject.gPath); listGObject.Add(gObject); typeEdit = 0; timer1.Enabled = false; } } if (typeEdit == 3) { if (checkBox1.Checked) deleteGraphicsPath(searchGpaphicsPath(listGObject, e.X, e.Y)); else { gObject = searchGpaphicsPath(listGObject, e.X, e.Y); listGObject.Remove(gObject); lenght = gObject.lenght(); height = gObject.height(); typeEdit = 5; timer1.Enabled = true; } // MessageBox.Show("тычок: " + e.X + "-" + e.Y ); } } catch (System.ArgumentNullException) { typeEdit = 3; } catch (System.NullReferenceException) { typeEdit = 3; } if (typeEdit == 2) // если фигура выбрана { timer1.Enabled = false; g.Clear(foneColor); listGObject.Add(drawRetangle(e.X, e.Y, blackPen)); drawCollection(listGObject, blackPen); // рисуем фигуры typeEdit = 0; // фигура поставлена } }
private GraphicsObject drawLine(int x1, int y1, int x2, int y2, Pen pen) { gObject = new GraphicsObject("line", x1 ,y1, x2, y2); // gObject.x1 = x1; gObject.x2 = x2; gObject.y1 = y1; gObject.y2 = y2; if (gObject.Create()) { g.DrawPath(pen, gObject.gPath); return gObject; } else return null; }