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; } }
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(); } }