private void Form1_MouseDown(object sender, MouseEventArgs e)//событие, отвечающее только за то, что кнопка была нажата { if (e.Button == MouseButtons.Left) //если зажата левая кнопка мыши, то запоминаем координаты { x_MouseDown = e.X; y_MouseDown = e.Y; OffOn = true; } } private void Form1_MouseMove(object sender, MouseEventArgs e) // событие отвечающее за движение мыши { if (e.Button == MouseButtons.Left) // если зажата левая кнопка мыши, то рисуем линиюю { if (OffOn == true) { g.Clear(Color.White); // эта штука обязательна, чтобы не рисовалась туча линиий, по сути затирает все линии и оставляет только нашу, нужную g.DrawLine(bluePen, x_MouseDown, y_MouseDown, e.X, e.Y);// сюда кидаем значения из MouseDown'a, а вторые координаты } // это место, где проводили мышкой } } private void Form1_MouseUp(object sender, MouseEventArgs e)// Подняли мышку { if (e.Button == MouseButtons.Left)//Подняли мышку, запомнили, где подняли { P[count].X = e.Location.X; P[count].Y = e.Location.Y; OffOn = false; } } private void Form1_MouseClick(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Right) // это нужно для рисования следующих линий, тут все как в первой лабе, нажали на { // форму, поставили линию g.DrawLine(bluePen, e.X, e.Y, P[count].X, P[count].Y); count++; check++; P[count].X = e.Location.X; P[count].Y = e.Location.Y; } if (e.Button == MouseButtons.Middle)// тут на колесико жмем, замыкаем наш многоугольник, соединяется последняя и первая вершина { g.DrawLine(bluePen, x_MouseDown, y_MouseDown, P[count].X, P[count].Y); P[check+1].X = x_MouseDown; P[check+1].Y = y_MouseDown; check++; } }