Ejemplo n.º 1
0
 private void button1_Click_1(object sender, EventArgs e)
 {
     while (Shapes_list.SelectedIndices.Count > 0)
     {
         Shapes.RemoveAt(Shapes_list.SelectedIndices[0]);
         Shapes_list.Items.RemoveAt(Shapes_list.SelectedIndices[0]);
     }
     button1.Enabled = false;
     TempShape = null;
     this.Refresh();
 }
Ejemplo n.º 2
0
 private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
 {
     if ((rb_line.Checked) && (IsShapeStart == false))
     {
         TempShape = new Line(Shape_start, e.Location);
     }
     else if ((rb_circle.Checked) && (IsShapeStart == false))
     {
         TempShape = new Circle(Shape_start, e.Location);
     }
     pictureBox1.Refresh();
 }
Ejemplo n.º 3
0
 private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
 {
     if (rb_cross.Checked)
     {
         TempShape = new Cross(e.Location);
     }
     else if (rb_circle.Checked)
     {
         Shape_start = e.Location;
         TempShape = new Circle(Shape_start, Shape_start);
     }
     else if (rb_line.Checked)
     {
         Shape_start = e.Location;
         TempShape = new Line(Shape_start, Shape_start);
     }
     IsShapeStart = false;
     pictureBox1.Refresh();
 }
Ejemplo n.º 4
0
        private void Form1_MouseDown(object sender, MouseEventArgs e)
        {
            switch (Figures) // Выбор между фигурами, которые можно нарисовать
            {
                case rdB_Positions.cross:   // Просто тыкает крест
                    flagStart = false;          // Флаг начатой фигуры в неправду. Он нам не нужен в этом действии
                    addShape(tmpShape);         // Добавление новой фигуры на экран из мнимой
                    tmpShape = null;
                    break;

                case rdB_Positions.line:    // Теперь разберемся с линией
                    if (!flagStart)             // Если только начали рисовать линию
                    {
                        lineStart = e.Location; // Запоминаем куда ткнули
                        flagStart = true;       // Выставили флаг в позицию "тянем линию"
                    }
                    else                        // Приходим сюда если уже закончили тянуть линию
                    {
                        addShape(tmpShape);     // Опять же добавляем фигуру
                        flagStart = false;      // Флаг ставим как было
                        tmpShape = null;
                    }
                    break;

                case rdB_Positions.circle:  // Следующий шаг - круг
                    if (!flagStart)                 // Всё точно так же. Смотрим на флаг
                    {
                        CircleCenter = e.Location;  // Теперь запоминаем куда ткнули
                        flagStart = true;           // Флаг на старт!
                    }
                    else
                    {
                        addShape(tmpShape);         // Рисуем
                        flagStart = false;          // Флаг возвращаем на место
                        tmpShape = null;
                    }
                    break;
            }

            this.Refresh();                         // Обновляем.
        }
Ejemplo n.º 5
0
 private void addShape(Shape shape)
 {
     Shapes.Add(shape);                              // Добавление фигуры на экран
     shapesList.Items.Add(shape.DescriptionString);  // Вызов функции, которая добавляет координаты фигуры в лист
 }
Ejemplo n.º 6
0
 private void очиститьВсёToolStripMenuItem_Click(object sender, EventArgs e)
 {
     Shapes.Clear();                                     // Тут, из выпадающего списка, можно очистить всё. Функции все банальны.
     shapesList.ClearSelected();
     shapesList.Items.Clear();
     flagStart = false;
     tmpShape = null;
     Refresh();
 }
Ejemplo n.º 7
0
        private void открытьToolStripMenuItem_Click(object sender, EventArgs e)
        {
            // А тут загружаем. Немного похитрее, чем сохранения, но тоже всё просто.
            string curFile = "file.txt";                            // Имя файла для записи
            if (openFileDialog1.ShowDialog() == DialogResult.OK)    // Выбрать файл вручную
            {
                curFile = openFileDialog1.FileName;

                Shapes.Clear();                                     // Очищение экрана
                shapesList.ClearSelected();
                shapesList.Items.Clear();
                flagStart = false;
                tmpShape = null;
                Refresh();

                StreamReader sr = new StreamReader(curFile);

                while (!sr.EndOfStream)
                {
                    string type = sr.ReadLine();
                    flagStart = false;
                    switch (type)
                    {
                        case "Cross":
                            Shapes.Add(new Cross(sr));
                            break;
                        case "Line":
                            Shapes.Add(new Line(sr));
                            break;
                        case "Circle":
                            Shapes.Add(new Circle(sr));
                            break;
                    }
                }
                sr.Close();
                Refresh();
            }
        }
Ejemplo n.º 8
0
 private void rdButt_Lines_CheckedChanged(object sender, EventArgs e)
 {
     Figures = rdB_Positions.line;       // Тут то же самое, только с линиями
     tmpShape = null;                    // Сбрасываем мнимую фигуру
     flagStart = false;
     Refresh();                          // И обновляем
 }
Ejemplo n.º 9
0
 private void rdButt_Cross_CheckedChanged(object sender, EventArgs e)
 {
     Figures = rdB_Positions.cross;      // Тут всё просто - если втыкаешь радиокнопку с крестом - втыкаем крест.
     tmpShape = null;                    // Сбрасываем мнимую фигуру
     flagStart = false;
     Refresh();                          // И обновляем
 }
Ejemplo n.º 10
0
 private void rdButt_Circle_CheckedChanged(object sender, EventArgs e)
 {
     Figures = rdB_Positions.circle; // А вот и наш потерявшийся радиобаттон с кругом. Выше всё более чем подробно расписано.
     tmpShape = null;
     flagStart = false;
     Refresh();
 }
Ejemplo n.º 11
0
 private void AddShape(Shape s)
 {
     Shapes.Add(s);
     Shapes_list.Items.Add(s.ConfString);
 }
Ejemplo n.º 12
0
 private void Form1_MouseLeave(object sender, EventArgs e)
 {
     tmpShape = null;
     Refresh();
 }
Ejemplo n.º 13
0
 private void AddShape(Shape s)
 {
     Shapes.Add(s);
 }
Ejemplo n.º 14
0
 private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
 {
     if (TempShape.MayDraw)
     {
         AddShape(TempShape);
     }
     TempShape = null;
     pictureBox1.Refresh();
     IsShapeStart = true;
 }
Ejemplo n.º 15
0
        // Что происходит при перемещении мышки?
        private void Form1_MouseMove(object sender, MouseEventArgs e)
        {
            switch (Figures)                            // Смотрим, какая же у нас фигура выбрана
            {
                case rdB_Positions.cross:               // Это крест!
                    tmpShape = new Cross(e.Location);   // Фигарим мнимый крест!
                    Refresh();                          // Обновляем, чтоб было видно.
                    break;
                case rdB_Positions.line:                // Нет, это линия!
                    if (!flagStart)                     // Если первая точка только ставится, запоминаем эту точку
                    {
                        lineStart = e.Location;
                        Refresh();
                    }
                    else                                // Если же уже стоит, рисуем мнимую линию от точки, которую мы запомнили, до курсора мыши
                    {
                        tmpShape = new Line(lineStart, e.Location);
                        Refresh();
                    }
                    break;

                case rdB_Positions.circle:              // Нет, это круг!
                    if (!flagStart)                     // Тут такая-же канитель, как с линией, только тут уже рисуем круг.
                    {
                        CircleCenter = e.Location;
                        Refresh();
                    }
                    else
                    {
                        tmpShape = new Circle(CircleCenter, e.Location);
                        Refresh();
                    }
                    break;
            }
        }
Ejemplo n.º 16
0
 //
 // event handlers
 //
 private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
 {
     if (mode == Mode.IDLE)
     {
         rb = get_shape(cmd);
         rb.coodinate.Add(new Point(e.X, e.Y)); // begin
         rb.coodinate.Add(new Point(e.X, e.Y)); // begin
         mode = Mode.BEGIN;
     }
 }
Ejemplo n.º 17
0
 private void создатьToolStripMenuItem_Click(object sender, EventArgs e)
 {
     Shapes.Clear();
     TempShape = null;
     Shapes_list.Items.Clear();
     pictureBox1.Refresh();
 }