C# .NET Windows Form | СОЗДАЁМ PAINT НА C#

Поделиться
HTML-код
  • Опубликовано: 15 фев 2021
  • Привет! В сегодняшнем уроке мы сделаем подобие всем известного Paint!)
    Если Вы начинающий программист, рекомендую посмотреть урок по созданию калькулятора на языке C# • C# ПЕРВАЯ ПРОГРАММА | ...
    Если данное видео тебе было полезно, не забудь подписаться, для тебя это ничего не стоит, а мне приятно :))
    P.s Видео в 4к будет доступно через 5-7 часов
    ---
    Track: Sleepy Jake
    Music created by Silent Partner
    Watch • Sleepy Jake - Silent P...
    Track: Heartland
    Music created by Silent Partner
    Watch • Heartland - Silent Par...
    Track: Hit My Soul
    Music created by Silent Partner
    Watch • Hit My Soul - Silent P...
    Track: Log Cabin
    Music created by Silent Partner
    Watch • Log Cabin - Silent Par...
    Track: Harvest Time
    Music created by Silent Partner
    Watch • (No Copyright Music) H...
    Track: Country Instrumental Music
    Music created by Mixroba Studio
    Watch • FREE COUNTRY INSTRUMEN...
    Track: Ukulele and Harmonica Indie Music Background
    Music created by Mixroba Studio
    Watch • UKULELE AND HARMONICA ...
    Track: Milky Way Stars [NCS Release]
    Music created by Janji feat. TR
    Watch • Janji feat. TR - Milky...
    Track: Daisy Dukes
    Music created by Silent Partner
    Watch • Daisy Dukes - Silent P...
    Track: Life of Riley
    Music created by Kevin MacLeod
    Watch • Life of Riley
    ⭐ Download store.payloadz.com/details/21...

Комментарии • 67

  • @channeloftwogentlemen9194
    @channeloftwogentlemen9194  3 года назад +21

    На моменте 20:44 я сказал , что условие НЕ равно, а сам написал РАВНО, исправьте на НЕ РАВНО, иначе сохранение работать не будет! Извините за ошибку(

    • @qwerty12345qwerty
      @qwerty12345qwerty 2 года назад

      в 76 строке ошибка

    • @maximleo1904
      @maximleo1904 2 года назад

      можешь помочь?у меня не рисует и возникает ошибка в методе drawlines

    • @impraverion
      @impraverion Год назад +1

      Я создал простенький метод загрузки изображения в picturebox, но при рисование на загруженной фотке не работает - она обнуляется при попытке рисования.
      private void button11_Click(object sender, EventArgs e)
      {
      OpenFileDialog openFileDialog = new OpenFileDialog();
      openFileDialog.InitialDirectory = Directory.GetCurrentDirectory();
      if (openFileDialog.ShowDialog() == DialogResult.OK)
      {
      try
      {
      pictureBox1.Image = new Bitmap(openFileDialog.FileName);
      }
      catch
      {
      MessageBox.Show("Невозможно открыть выбранный файл!");
      }
      то есть он стирает ее при попытке нарисовать поверх. что можно придумать?

    • @BroVaduxa777
      @BroVaduxa777 Год назад

      @@impraverion бро, скинешь проект?🚀❤️

  • @user-oe7lj9rt2s
    @user-oe7lj9rt2s 3 года назад +18

    Лучший! Без воды и прочего, всё понятно и не мямлит, как остальные блогеры. Дальнейшего продвижения канала💫

    • @DDoZERR0
      @DDoZERR0 2 года назад +1

      так же обратим внимание на высокое качество записи, аж приятно было)

  • @user-mw7dq9oh8q
    @user-mw7dq9oh8q 3 года назад +2

    видео класс. все кратко и понятно. искал именно такую тему по графике. хоть я и чуть больше чем новичок в C# . было полезно. про CLASS более понял(чем от других ( но боюсь придется пересмотреть.)время ночь). была запара с 88 строчкой. в квадратных скобках [graphics.DrawLines(pen,arrayPoints.GetPoints());] после слова "PEN" поставил точку.

  • @Lovely_Ferret
    @Lovely_Ferret Год назад +1

    Чувак, огромное спасибо тебе! Теперь я смогу лабу сделать, красавчик. Хочется правда ещё модернизировать, но это уже мои заскоки

  • @deniswdwd2388
    @deniswdwd2388 Год назад +3

    отличный разбор программы, ничего лишнего и все понятно из объяснений

  • @dinarplay2557
    @dinarplay2557 3 года назад +2

    cпасибо за видеоурок!

  • @kserx945
    @kserx945 3 года назад +3

    Классный видеоурок.Полезный

  • @vagabund2839
    @vagabund2839 Год назад +1

    Спасибо большое!🔥

  • @vagabund2839
    @vagabund2839 Год назад +1

    Красавчик!!!

  • @sutury5388
    @sutury5388 3 года назад +1

    супер!)

  • @frogwarg
    @frogwarg Год назад +2

    Это полностью моя курсовая работа...
    Ну, всмысле, у меня тема Графический редактор и тут один в один то что мне нужно, спасибо большое!)

    • @BroVaduxa777
      @BroVaduxa777 Год назад

      бро, скинешь проект?🚀❤️

  • @user-be9rc4yz8r
    @user-be9rc4yz8r Год назад +1

    Парень, спасибо тебе большое. Я сам люблю создавать клеточные автоматы в винформах, ну и собственно там надо расставлять клетки.. и я хз, но я тогда чёт не допер, как сделать чтоб можно было мышку зажать и водить ей рисуя клетки, и приходилось на каждую клетку собственно тыкать.. хотя конечно довольно простое решение просто булевую переменную добавить, которая бы показывала зажата ли мышка.. ну бывают у меня тупняки конечно..

  • @vagabund2839
    @vagabund2839 Год назад +1

    🔥🔥🔥

  • @chibikryak
    @chibikryak 7 месяцев назад

    это гениально....

  • @blob-like_Frog
    @blob-like_Frog Год назад

    Спасибо большое

  • @5326994
    @5326994 Год назад +1

    Ты конечно молодец(но много вещей не понятно 4 из 5 лучший(Лайк оставил))

  • @z.prod.7882
    @z.prod.7882 Год назад

    лучший!

  • @xotyenota3817
    @xotyenota3817 2 года назад +1

    Привет, можешь сделать уроки по созданию векторного графического редактора, с нормальным интерфейсом, возможностью изменять цвета, на с#?

  • @clarkecooper6979
    @clarkecooper6979 2 года назад +3

    Подскажите пожалуйста, как мне не очищать picturebox перед рисованием? У меня просто там программно отрисовываются графики и потом мне нужно на них рисовать мышкой

  • @user-cv1zv8rl2s
    @user-cv1zv8rl2s 6 месяцев назад

    Идея для нового урока: связка Panel и PictureBox для изображений больше размеров экрана. Как продолжение этого урока.

  • @user_TAJcGbJA
    @user_TAJcGbJA Год назад +3

    Тоже самое, только без Классов, проще некуда:
    public partial class Form1 : Form
    {
    Color color = Color.Black;
    Bitmap bmp = null;
    Graphics graphics;
    Pen pen;
    bool firstPress = false;
    bool draw = false;
    Point p1, p2; // Важно завести глобальные точки
    public Form1()
    {
    InitializeComponent();
    bmp = new Bitmap(pictureBox1.Width, pictureBox1.Height);
    pen = new Pen(color);
    pen.StartCap = LineCap.Round;
    pen.EndCap = LineCap.Round;
    }
    private void pictureBox1_Paint(object sender, PaintEventArgs e)
    {
    if (draw)
    {
    draw = false;
    using (graphics = Graphics.FromImage(bmp)) // использование using уменьшает количество используемой памяти
    {
    graphics.DrawLine(pen, p1, p2);
    p1 = p2; // Чтобы линия повторяла курсор мыши
    }
    pictureBox1.Image = bmp;
    }
    }
    private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
    {
    firstPress = true;
    p1 = e.Location;
    }
    private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
    {
    if (firstPress)
    {
    p2 = e.Location;
    draw = true;
    pictureBox1.Invalidate();
    }
    }
    private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
    {
    firstPress = false;
    }
    }

    • @extremely8018
      @extremely8018 Год назад

      Братан, у меня LineCap.Round подсвечивается красным, типо имени нет, что делать?

    • @user_TAJcGbJA
      @user_TAJcGbJA Год назад

      @@extremely8018 VisualStudio подскажет что нужно подключить, мышку придержи просто на ошибке.

  • @MarkVezelis-xc5gi
    @MarkVezelis-xc5gi 3 месяца назад

    Помогите пожалуйста выходит ошибка CS1061 Form1 не содержит определение "pictureBox1_Click", и не удалось найти доступный метод расширения "pictureBox1_Click", принимающий тип "Form1" в качестве первого аргумента (возможно, Paint пропущена директива using или ссылка на сборку). ВОТ ЧТО МНЕ ДЕЛАТЬ КАК РЕШИТЬ ЭТУ ПРОБЛЕМУ КТО НИБУДЬ ПОМОГИТЕ!

  • @addonsb
    @addonsb Год назад +4

    Народ , как починить то что у меня новая линия начинается из предыдущей?

  • @user-nv4yz5bt4g
    @user-nv4yz5bt4g Год назад

    Создал программу где цикл for рисует вертикальные линии , а второй цикл рисует горизонтальные линни и объединил два в один метод . Почему-то метод рисует набор вертикальных рисует хорошо , а набор горизонтальных линий не рисует . Не могу понять в чем дело ? Вертикальные линии есть , горизонтальные лини не прорисовываются . Ваш урок для меня очень интересен - пытаюсь написать ваш редактор .

  • @bogelmanDDD
    @bogelmanDDD Год назад +3

    Добрый день! Но будет ли урок о том, как создать свой собственный VST-синтезатор на C#?

    • @camelos
      @camelos Год назад +1

      с чего это "но"?

  • @skoch5658
    @skoch5658 2 года назад +2

    Привет! Могу ли я с тобой связаться?

  • @user-lb9zm2jc7w
    @user-lb9zm2jc7w 2 года назад +2

    у кого нибудь есть готовый код? можете скинуть?

  • @tayarzaeva
    @tayarzaeva Год назад

    Здравствуйте, а можете подсказать как сделать ластик? Мне нужно для курсовой работы

    • @thegamoxidchanel7747
      @thegamoxidchanel7747 11 месяцев назад +1

      Если ещё актуально, я сделал ластик так:
      pen.Color = pictureBox1.BackColor;
      проще говоря я нажимая на кнопку "ластик", присваиваю кисти, цвет заднего фона редактируемого полотна.

  • @crazyzew9800
    @crazyzew9800 2 года назад +5

    Hi, can you post the whole code in the comments?

    • @Lovely_Ferret
      @Lovely_Ferret Год назад +1

      Сам пиши, так лучше запомнишь

  • @ranzerpubg4366
    @ranzerpubg4366 3 года назад +2

    Почему у меня рисуется одной линеей?

  • @leinadalien
    @leinadalien 2 года назад +1

    неплохо, но есть одно но: я реализовал очистку таким же способом у себя и почему то после того как я нажимаю очистить у меня выделяется дополнительная память, хотя по идее она должна наоборот освобождаться🤔

    • @Lovely_Ferret
      @Lovely_Ferret Год назад

      Чувак, тут очистка реализована просто заполнением памяти. Вот ты нарисовал линию, а функция очистки зарисовывает все поле одним цветом, т е одна линия на другую накалдывается тем самым закрашивая или очищая, как нравится

    • @ShadVert
      @ShadVert Год назад

      Прошёл год но отвечу... Для начала два чела сверху мелят херню, на самом деле это визуально проводник показывает что у тебя заполняется память по если ты очистишь бокс 4 - 5 раз то ты заметишь что память выше не поднимается то есть остаётся максимум 26 мегабайт так что вот так вот...

    • @leinadalien
      @leinadalien Год назад

      @@ShadVert да уже не актуально. Мне таску в унике надо было делать, вот видос твой смотрел. Если интересно что получилось, (Ютуб ссылку не даёт вставить сюда) отпиши мне куда-нибудь, я скину репу

    • @ShadVert
      @ShadVert Год назад

      @@leinadalien, я не являюсь автором канала так что видос не мой.

  • @user-re3co4uq6b
    @user-re3co4uq6b 3 года назад +2

    Идеально, но что-то не так (не рисует)

  • @Armyashkaru
    @Armyashkaru 2 месяца назад +1

    Бро он у меня не сохраняет я не понимаю в чём дело(

  • @lespri
    @lespri 9 месяцев назад

    можно пожалуйста готовый файл ?

  • @antonsimkin
    @antonsimkin 2 года назад +3

    У меня панель Выбор толщины устанавливается выше панели цвета.
    А еще у меня не сохраняется файл.

    • @daniilkams
      @daniilkams 2 года назад

      ты не видишь? автор комментарий написал:
      На моменте 20:44 я сказал , что условие НЕ равно, а сам написал РАВНО, исправьте на НЕ РАВНО, иначе сохранение работать не будет! Извините за ошибку(

    • @maximleo1904
      @maximleo1904 2 года назад

      @@daniilkams и че?все равно не робит

    • @toxodus
      @toxodus 6 месяцев назад

      ​@@maximleo1904тебе вместо == надо поставить !=

  • @irwe3514
    @irwe3514 2 года назад +3

    Все отлично, но у меня почему-то не сохраняется результат, а в целом конструктивно

    • @BroVaduxa777
      @BroVaduxa777 Год назад

      бро, скинешь проект?🚀❤️

    • @irwe3514
      @irwe3514 Год назад +1

      @@BroVaduxa777 он утерен.

  • @perdedustv3171
    @perdedustv3171 3 года назад +7

    Здравсвтуйте! У меня пишет что Имя "colorDialog1" не существует в текущем контексте

    • @tallegor
      @tallegor 2 года назад

      Ты не поместил colorDialog на форму. 16:50

  • @user-us7wj3gn8m
    @user-us7wj3gn8m 2 года назад +1

    Может есть у кого код этот? Срочно нужно

  • @lukaviann
    @lukaviann Год назад +1

    Хелп, у меня линия рисует неотрывно, даже если выбирать другой цвет. Что я могла упустить? 🥲

    • @BroVaduxa777
      @BroVaduxa777 Год назад

      нужна твоя помощь🙏🏻
      скинешь проект?🚀❤️

    • @user-mx2yu2po1o
      @user-mx2yu2po1o 11 месяцев назад

      Привет ты решил проблему?

    • @lukaviann
      @lukaviann 11 месяцев назад

      @@BroVaduxa777 какой проект?)

    • @BroVaduxa777
      @BroVaduxa777 11 месяцев назад

      @@lukaviann этот с пеинтом, уже не нужно, благодарю❤️😌

  • @Rotara
    @Rotara 2 года назад +1

    private void pictureBox2_MouseMove(object sender, MouseEventArgs e)
    {
    if (!isMouse) { return; }
    arrayPoints.SetPoint(e.X, e.Y);
    if (arrayPoints.GetCountPoints() >= 2)
    {
    graphics.DrawLines(pen, arrayPoints.GetPoints());
    pictureBox1.Image = map;
    arrayPoints.SetPoint(e.X, e.Y);
    }
    }
    Выдаёт ошибку CS0122