示例#1
0
 private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
 {
     paint = true;
     if (e.Button == MouseButtons.Left && drawCircle)
     {
         flag               = false;
         _center            = new Point(e.X, e.Y);
         pictureBox1.Paint += OnMovePictureBox_Paint;
     }
     if (e.Button == MouseButtons.Left && drawline)
     {
         Start              = new Point(e.X, e.Y);
         flag               = false;
         pictureBox1.Paint += OnMovePictureBox_Paint;
     }
     if (e.Button == MouseButtons.Left && drawPoint)
     {
         flag    = false;
         _center = new Point(e.X, e.Y);
         Start   = new Point(e.X, e.Y);
         DrowP   = true;
         float    radius = float.Parse(textBox2.Text);
         datalist dp     = new datalist(datalist.MyElenent.point, pen, _center.X, _center.Y, e.X + 1, e.Y + 1);
         list.Add(dp);
         pictureBox1.Invalidate();
     }
     if (e.Button == MouseButtons.Left && drawRectangle)
     {
         Start  = new Point(e.X, e.Y);
         Start1 = new Point(e.X, e.Y);
         flag   = false;
         //Запоминаем центр
         _center            = new Point(e.X, e.Y);
         pictureBox1.Paint += OnMovePictureBox_Paint;
     }
 }
示例#2
0
        private void pictureBox1_MouseMove(object sender, MouseEventArgs e) //при движении мышки
        {
            if (DrowP)
            {
                datalist dp = new datalist(datalist.MyElenent.point, pen, _center.X, _center.Y, e.X, e.Y);
                list.Add(dp);
                _center = e.Location;
                pictureBox1.Invalidate();
            }
            if (drawline && paint)
            {
                if (e.Button == MouseButtons.Left)
                {
                    //Запоминаем конечную точку радиуса
                    Finish1 = e.Location;
                    //Обновляем PictureBox, чтобы вызывать его перерисовку
                    pictureBox1.Invalidate();
                }
                if (!flag)
                {
                    pictureBox1.Invalidate();
                }
                if (flag)
                {
                    datalist dl = new datalist(datalist.MyElenent.line, pen, Start.X, Start.Y, Finish.X, Finish.Y);
                    list.Add(dl);
                    flag = false;
                }
            }
            if (drawRectangle && paint)
            {
                Finish1 = e.Location;
                if (!flag)
                {
                    if (e.Button == MouseButtons.Left)
                    {
                        //Запоминаем конечную точку радиуса
                        _endPoint = new Point(e.X, e.Y);
                        //Обновляем PictureBox, чтобы вызывать его перерисовку
                        pictureBox1.Invalidate();
                    }
                }
                if (flag)
                {
                    if (checkBox1.CheckState == CheckState.Checked)
                    {
                        b = true;
                    }
                    else
                    {
                        b = false;
                    }

                    if (Start.X > Finish.X)
                    {
                        int a = Start.X;
                        Start.X  = Finish.X;
                        Finish.X = a;
                    }

                    if (Start.Y > Finish.Y)
                    {
                        int a = Start.Y;
                        Start.Y  = Finish.Y;
                        Finish.Y = a;
                    }
                    datalist dr = new datalist(datalist.MyElenent.rectangle, pen, Start.X, Start.Y, Finish.X - Start.X, Finish.Y - Start.Y, b, background, new SolidBrush(btn_back_color.BackColor));
                    list.Add(dr);
                    flag = false;
                }
                pictureBox1.Invalidate();
            }
            if (drawCircle && paint)
            {
                if (!flag)
                {
                    if (e.Button == MouseButtons.Left)
                    {
                        //Запоминаем конечную точку радиуса
                        _endPoint = new Point(e.X, e.Y);
                        //Обновляем PictureBox, чтобы вызывать его перерисовку
                        pictureBox1.Invalidate();
                    }
                }
                if (flag)
                {
                    if (checkBox1.CheckState == CheckState.Checked)
                    {
                        b = true;
                    }
                    else
                    {
                        b = false;
                    }
                    radius = (float)Math.Sqrt(Math.Pow(_endPoint.X - _center.X, 2) + Math.Pow(_endPoint.Y - _center.Y, 2));
                    datalist dr = new datalist(datalist.MyElenent.circle, pen, _center.X - radius, _center.Y - radius, radius * 2, radius * 2, b, background, new SolidBrush(btn_back_color.BackColor));
                    list.Add(dr);
                    flag = false;
                }
                pictureBox1.Invalidate();
            }
        }