Рисование линии мышкой на PictureBox - C#

Узнай цену своей работы

Формулировка задачи:

Всем привет. Решил побаловаться, попробовать реализовать некое подобие Paint на C#. Начал с рисования линии. Вроде бы делаю все правильно: когда пользователь нажимает мышку то фиксирую начальную точку и картинку, когда пользователь двигает мышь, то загружаю в PictureBox картинку которая была раньше и рисую линию по точкам. Но есть несколько проблем: 1) В процессе рисования линия постоянно то исчезает то появляется 2) Когда отпускаю кнопку мыши то линия исчезает
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. namespace WindowsFormsApp
  10. {
  11. public partial class MainForm : Form
  12. {
  13. private Point start;
  14. private bool drawing = false;
  15. private Image orig;
  16. public MainForm()
  17. {
  18. InitializeComponent();
  19. }
  20. private void pictureBox_MouseDown(object sender, MouseEventArgs e)
  21. {
  22. start = new Point(e.X, e.Y);
  23. orig = pictureBox.Image;
  24. drawing = true;
  25. }
  26. private void pictureBox_MouseMove(object sender, MouseEventArgs e)
  27. {
  28. if (!drawing) return;
  29. var finish = new Point(e.X, e.Y);
  30. pictureBox.Image = orig;
  31. var pen = new Pen(Color.Black, 1f);
  32. var g = Graphics.FromHwnd(pictureBox.Handle);
  33. g.DrawLine(pen, start, finish);
  34. pictureBox.Refresh();
  35. }
  36. private void pictureBox_MouseUp(object sender, MouseEventArgs e)
  37. {
  38. drawing = false;
  39. }
  40. }
  41. }
Что я делаю не так?

Решение задачи: «Рисование линии мышкой на PictureBox»

textual
Листинг программы
  1.         private Point start;
  2.         private bool drawing = false;
  3.         Bitmap bm = new Bitmap(300, 300);
  4.         Bitmap bm2 = new Bitmap(300, 300);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.923 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут