Рисование линии мышкой на PictureBox - C#
Формулировка задачи:
Всем привет. Решил побаловаться, попробовать реализовать некое подобие Paint на C#. Начал с рисования линии. Вроде бы делаю все правильно: когда пользователь нажимает мышку то фиксирую начальную точку и картинку, когда пользователь двигает мышь, то загружаю в PictureBox картинку которая была раньше и рисую линию по точкам. Но есть несколько проблем:
1) В процессе рисования линия постоянно то исчезает то появляется
2) Когда отпускаю кнопку мыши то линия исчезает
Что я делаю не так?
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace WindowsFormsApp { public partial class MainForm : Form { private Point start; private bool drawing = false; private Image orig; public MainForm() { InitializeComponent(); } private void pictureBox_MouseDown(object sender, MouseEventArgs e) { start = new Point(e.X, e.Y); orig = pictureBox.Image; drawing = true; } private void pictureBox_MouseMove(object sender, MouseEventArgs e) { if (!drawing) return; var finish = new Point(e.X, e.Y); pictureBox.Image = orig; var pen = new Pen(Color.Black, 1f); var g = Graphics.FromHwnd(pictureBox.Handle); g.DrawLine(pen, start, finish); pictureBox.Refresh(); } private void pictureBox_MouseUp(object sender, MouseEventArgs e) { drawing = false; } } }
Решение задачи: «Рисование линии мышкой на PictureBox»
textual
Листинг программы
private Point start; private bool drawing = false; Bitmap bm = new Bitmap(300, 300); Bitmap bm2 = new Bitmap(300, 300);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д