C# обучение - User Control. Рисуем графический интерфейс GUI.

Поділитися
Вставка
  • Опубліковано 7 вер 2024
  • Рисуем элементы user control на c#. Этим видео я положил начало созданию своего графического интерфейса - gui. В ролике вы узнаете что такое пользовательский элемент управления, а также научитесь программно рисовать объекты в windows forms.
    В видео рассмотрена тема custom user control, тема рисования и создания элементов управления на c#, в частности создание кнопки.
    В будущем будут выходить видео уроки по созданию красивого графического интерфейса на C# WinForm.
    Во видео-уроке я использую:
    Visual Studio 2017
    .NET C#
    Я очень рад, если видео "C# обучение - User Control. Рисуем графический интерфейс GUI." было Вам полезно.
    Хотите поблагодарить меня? - Жмите кнопку "Мне понравилось" и скиньте ссылку на урок друзьям или сделайте репост на свою страницу в соц. сети. Это будет самая лучшая благодарность и мотивация продолжать делать для вас видео-уроки по C#.
    Подписывайтесь на этот канал: www.youtube.co...
    #КодНеКодера #UserControl #ButtonDesign

КОМЕНТАРІ • 86

  • @egolds
    @egolds  5 років тому +3

    *➤ Стань моим Патроном:* *www.patreon.com/egolds*
    Код кнопки тут: clck.ru/NEWoT
    1. Эффект шторки при наведении мышки: ua-cam.com/video/uCFxdaNORls/v-deo.html
    2. Волновой эффект при клике по кнопке: ua-cam.com/video/AkgsbGOn6u0/v-deo.html

  • @MRoose
    @MRoose 5 років тому +14

    Единственный видос про собств контрол. Огромное спасибо

    • @egolds
      @egolds  5 років тому +3

      Пожалуйста, скоро будут ещё такие)

    • @MRoose
      @MRoose 5 років тому +1

      @@egolds очень жду)
      а можно про tabcontrol?
      Для моего проекта понадобился с вертикальной раскладкой. Давно нагуглил с перерисовкой, норм и работал, но сейчас появились требования к внешнему виду.
      -на вкладке кнопка для закрытия
      -последняя вкладка - плюсик, для создания новой вкладки
      -после создания вкладки она открывает OpenFileDialog
      сегодня идея зародилась, уже нашел habr.com/ru/post/170375/, но все не то

    • @egolds
      @egolds  5 років тому +1

      @@MRoose Без проблем, в планах сейчас два видео, и скорее всего твоя идея, это будет третьим роликом, только вопрос, для чего это нужно: "после создания вкладки она открывает OpenFileDialog"? какие дальнейшие действия?

    • @MRoose
      @MRoose 5 років тому

      @@egolds опишу вкратце, если требуется, могу ссылки на темы с киберфорума скинуть(с того года обсуждения веду)
      коллегам по работе помогаю собирать пожелания к расписанию.
      Отделов несколько, тысячи сотрудников.
      Отделы могут добавляться.
      Все это через БД SQLite (нет сервера, онли сетевой диск).
      Вообщем из csv получаем данные о сотрудниках, одна бд - марштрутизатор. Из нее выходим на бд отдела, в ней параметры к сбору.
      Все это выполняется через админку, в ней в каждом tabPage свой функционал (создать список вопросов с ответами, добавить отдел и тп)
      Функционал возможно будет увеличиваться.
      Так вот, из-за моего ничтожного опыта, любое внесение новой фичи заставляет переписывать весь код.
      Сейчас все описанное - пока в разработке (в релизе старая версия, которая в качестве бд использует .xslx)
      Пытаюсь красиво все построить. Решил вынести каждую задачу в модуль-dll с usercontrol-ом, который будет загружаться в tabPage.
      В итоге, думаю оставить форму чисто для отображения модулей, а модули будут по запросу подгружаться, что упростит обнову.
      Ну собственно через OpenFD и будет админ выбирать dll
      На крайняк - думаю вместо tabControl сделать кнопочки, но открываться будут формы, а не UserControl

    • @egolds
      @egolds  5 років тому +1

      @@MRoose я думаю сделаю видео, где выполню реализацию tabcontrol полностью с нуля, с возможностью закрытия вкладок по кнопке-крестику как в браузере, и кнопку "+" для добавления новой вкладки, ну и конечно загружу исходник на github, так что ожидай)
      P.S. У нас кстати, в фирме продукт, который мы предоставляем нашим клиентам, работает так что имеет вкладки, и эти вкладки подгружают содержимое из DLL, разным клиентам нужен разный функционал, каждому свои правки, но приложение одно, в общем что-то похожее на то что ты расписал, правда ваш софт внутри корпорации используется)

  • @WTF-sk9vl
    @WTF-sk9vl 5 років тому +5

    Всегда любил твои контроллы)) Пожалуйста выкладывай так же исходники было бы очень полезно.
    И можешь пожалуйста сделать разбор на чекбоксы и выдвигающии панели ?

    • @egolds
      @egolds  5 років тому +2

      Продолжение будет, исходники также буду выкладывать, будет много видео уроков на эту тематику)

  • @kenzug2000
    @kenzug2000 4 роки тому +1

    Лол, я сюжу, перепроверяю, сравниваю твой код с тем, что написал я, думал что где-то ошибка, мол у тебя кнопка есть, а у меня ее нет, короче, я тупо невнимателен!
    видео хорошее и понятное, спасибо!

  • @vadimlikhachev424
    @vadimlikhachev424 Рік тому

    Спс за урок.

  • @kabukijoe99
    @kabukijoe99 4 роки тому +2

    Пока ничего, как начинающему, не понятно, но очень интересно

    • @nuklearnuke
      @nuklearnuke 6 місяців тому

      Тут учат не C# а интерфейс на C#

  • @Denis79
    @Denis79 Рік тому

    всё надо рисовать! Весь интерфейс!

  • @dobrinyanicitich7514
    @dobrinyanicitich7514 11 місяців тому

    Спасибо, интересно!

  • @ko-games7768
    @ko-games7768 3 роки тому

    Побольше бы видосов про свой интерфейс. Классное видео.

    • @egolds
      @egolds  3 роки тому

      Благодарю)

  • @mrDefolt
    @mrDefolt Рік тому +1

    Как у тебя само появилось в меню самописный элемент? Что за видео для специалистов в шарпе?

  • @ShtormShadow
    @ShtormShadow 2 роки тому +1

    Взял готовый код с гит, компилятор подчеркивает Animation, Drawer, Animator?

  • @pody8205
    @pody8205 2 роки тому +1

    На 1:12 в панели ничего нового не появляется, даже если создаёшь конкретно "пользовательский элемент", который наследуется от UserControl
    Пересборка и компиляция не помогает

    • @Tim_Obozny
      @Tim_Obozny 2 роки тому +1

      такая же проблема. Получилось как-то решить?

    • @pody8205
      @pody8205 2 роки тому +3

      @@Tim_Obozny Да, средства - параметры - конструктор Windows forms - автоматически заполнять панель элементов на true.
      Нашел это в комментах

    • @Tim_Obozny
      @Tim_Obozny 2 роки тому

      @@pody8205 Спасибо!

  • @redfox7193
    @redfox7193 Місяць тому

    А почему в таком случае (если вы хотите отказаться от стандартных контролов Windows Forms в пользу кастомных) не использовать тогда уже WPF вместо Windows Forms?

    • @egolds
      @egolds  Місяць тому

      Ну вот такой интерес у меня, 5 лет назад был :) Сейчас то на WPF в основном сижу, а недавно перешел на Avalonia UI, рекомендую

  • @EoLienFive
    @EoLienFive 8 місяців тому

    А как насчёт теней? Или GDI не справляется с этим?

  • @EasyPlay_su
    @EasyPlay_su 4 роки тому +3

    А так же советую прочитать в википедии что такое "Урок". И не путать его с тем что происходит на видео.

    • @egolds
      @egolds  4 роки тому

      Спасибо за совет

  • @user_PsevdonimyEtoPolnyjOtstoj
    @user_PsevdonimyEtoPolnyjOtstoj 2 роки тому

    Зачем нужен не закрашенный прямоугольник?
    Видео хорошее, сохранил.

    • @egolds
      @egolds  Рік тому

      Можно и без него, с ним четкие границы определяем

  • @vitalytochenyy481
    @vitalytochenyy481 4 роки тому

    Неплохо)

    • @egolds
      @egolds  4 роки тому

      Спасибо)

  • @user-zc7ym4hv3y
    @user-zc7ym4hv3y 4 роки тому +1

    Напишите пожалуйста стиль на Список(плейлист)
    И да, реализуйте чтобы можно было не только текст туда добавлять, но и изображение)

    • @egolds
      @egolds  4 роки тому

      В последних обновлениях там уже и шторка, и дополнительный текст и использование градиента и закругление, но вот про картинку забыл, обязательно добавлю)
      А что за список? Как называется элемент управления? ListView?

    • @user-zc7ym4hv3y
      @user-zc7ym4hv3y 4 роки тому

      @@egolds Нет. ListBox1. Кратко: Плейлист для плеера(как у windows 10 например) UI ListBox(Playlist)

    • @egolds
      @egolds  4 роки тому +1

      Ааа, ну тоже кастомный контрол, внесу в список идей, может быть реализую)

  • @gayfox8166
    @gayfox8166 5 років тому +5

    про ботнет будет?

    • @egolds
      @egolds  5 років тому +3

      Будет, но позже, сейчас решил разбавить немного другим)

  • @McMouse88
    @McMouse88 3 роки тому +1

    Взял готовый код с гит, компилятор подчеркивает Animation, Drawer, Animator, ControlDesigner и SelectionRules

    • @user-ju3xz9em1y
      @user-ju3xz9em1y 3 роки тому

      тоже самое, ты как-то это исправил ?)

    • @McMouse88
      @McMouse88 3 роки тому

      Как то исправил но уже не помню 🤣

  • @nurulloevmahmud6222
    @nurulloevmahmud6222 5 років тому

    🎆

  • @artemiyzubarev7068
    @artemiyzubarev7068 4 роки тому

    здравствуйте. сделал я все, как у вас в видео, захотел сменить цвет кнопки, переписал в коде, присвоил значение Gray. но все равно в конструкторе ставится цвет Tomato, даже если я вообще уберу присвоение. как это решить?

    • @artemiyzubarev7068
      @artemiyzubarev7068 4 роки тому

      А не, исправил. Нужно просто сбросить панель элементов, и запустить проект. Тогда все применится.

  • @deandomino8501
    @deandomino8501 4 роки тому

    Заметил такую вещь, то что кастомная кнопка плохо обрабатывает события
    при частом клике, но если унаследоваться не от Control, а от Button, то
    такая аномалия пропадает и кнопка ведет себя хорошо, интересно с чем это
    связано

    • @egolds
      @egolds  4 роки тому

      Да, тоже обратил на это внимание, но пока не разбирал с чем это связано, думаю всё таки лучше использовать родительский класс Button.

    • @artur_crack
      @artur_crack 2 роки тому

      @@egolds Привет, а как использовать родительский класс Button, что нужно поменять?

    • @egolds
      @egolds  2 роки тому

      @@artur_crack Привет, ну вот там где на видео на 1:04 я пишу : Control нужно написать : Button

  • @alexey_mironov
    @alexey_mironov 4 роки тому

    Как задать текст для кнопки ("Кнопка такая-то") внутри этого контрола, так чтоб yt_Button как имя остался неизменным, а текст можно было присвоить любой?

    • @egolds
      @egolds  4 роки тому

      Текст задается в свойстве Text, а имя в свойстве Name, уже когда кнопка была добавлена на форму

    • @alexey_mironov
      @alexey_mironov 4 роки тому

      в самом коде yt_Button это сделать нельзя, до того как кнопка добавлена на форму? то, что можно поменять в form.cs это понятно. Я говорю про Text. т.к name = названию класса yt_Button.

    • @egolds
      @egolds  4 роки тому

      Нужно поменять название самого класса кнопки. Либо попробовать в конструкторе кнопки установить текст: Text = "...";

  • @user-vg6ni9wt5d
    @user-vg6ni9wt5d 2 роки тому

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

    • @egolds
      @egolds  2 роки тому

      После того как закрываешь/запускаешь проект в VS или саму программу? Какая ошибка, что там написано?

  • @muzprog2023
    @muzprog2023 2 роки тому

    Создал компонент. Как его поместить на форму? Он у меня под формой помещается.

    • @egolds
      @egolds  2 роки тому

      Нужно создать usercontrol, а не usercomponent

    • @muzprog2023
      @muzprog2023 2 роки тому

      @@egolds Ну это то понятно. А если с нуля делать? В готовом много лишних свойств, которые не нужны.

  • @skombrion5838
    @skombrion5838 2 роки тому

    Почему у тебя до сих пор мало подписчиков? Я не понимаю

  • @user-be8oi3nc4z
    @user-be8oi3nc4z 4 роки тому

    Почему наследуемся от Control а не от BaseButton?

    • @egolds
      @egolds  4 роки тому

      Можно наследоваться от класса Button, особо разницы никакой, кроме дополнительных свойств, полей, событий и методов реализованных в классе Button. Просто класс Control является базовым классом всех элементов управления, поэтому решил создавать кнопку с нуля.
      А если имеешь ввиду класс ButtonBase, то ведь он используется в WPF, а на видео - Windows Forms =)

  • @kraken4938
    @kraken4938 4 роки тому

    А как можно сделать анимированную кнопку из Фотошопа на C#?

    • @egolds
      @egolds  4 роки тому

      Нужно программно делать, как я показывал в других видео на канале

  • @sanchekvar
    @sanchekvar 2 роки тому

    А что если совсем ПК нет ? Но хочется кодить на сишке ?

    • @egolds
      @egolds  2 роки тому

      Ну наверное можно на телефоне, но это совсем будет как-то не очень, потому что как минимум нужно выполнять отладку, запускать приложение, итд. Разве что попробовать писать вебприложения на шарпе, но я не знаю что и как там..

    • @user-wf9yc1xt4e
      @user-wf9yc1xt4e 2 роки тому +1

      сейчас комп можно купить дешевле телефона )

  • @zoirsharopov6427
    @zoirsharopov6427 5 років тому +2

    Zoir

  • @forsen2119
    @forsen2119 2 роки тому

    Привет, Egolds!
    Куда пропал??? Ты канал уже забросил?:(

    • @egolds
      @egolds  2 роки тому

      Привет, я всё ещё тут, контент будет, когда точно не знаю, но будет, я по крупицам готовлюсь к восстановлению)

    • @forsen2119
      @forsen2119 2 роки тому

      @@egolds Ооо, думал уже все забросил))
      Ждем твои видео!!!

  • @MrIgorek1509
    @MrIgorek1509 3 роки тому

    Ну на самом деле, что за урок, я со скоростью в 0,25 ничего не успеваю заметить. Поэтому тупо на первых 20 сек видео завис и пошел смотреть другие видео. Ну это так для информации.

    • @egolds
      @egolds  3 роки тому

      Вполне может быть, благодарю

  • @math1560
    @math1560 4 роки тому

    можно название музыки из видео?

    • @egolds
      @egolds  4 роки тому +1

      Сори не заметил твой комментарий.
      Название: Text Me Records / Bobby Renz | Undeniable
      Я его брал из фонотеки ютуба.

    • @math1560
      @math1560 4 роки тому

      @@egolds спасибо) Я думал уже на такие коменты не отвечают)

    • @egolds
      @egolds  4 роки тому

      Пожалуйста, ещё отвечаю)

  • @hiphopik9185
    @hiphopik9185 4 роки тому

    Можешь видео с кривой безье записать?

    • @egolds
      @egolds  4 роки тому

      Вряд ли буду снимать об этом, а о чем вообще там снять можно, о самих вычислениях?

    • @hiphopik9185
      @hiphopik9185 4 роки тому

      @@egolds да ну можно саму программу как рисует кривую Безье

  • @EasyPlay_su
    @EasyPlay_su 4 роки тому

    В чем прикол видео в перемотке, ничего не понятно, при вводе команды половина просто в кадр не попадает от того что ты видео мотаешь, так же можешь посмледующие ролики выкладывать без картники, просто черный фон, толку от того что есть сейчас нету. И где исходники? Или так сложно эти гребанные 100кб залить на ядиск или гдиск?!

    • @egolds
      @egolds  4 роки тому +2

      Вот тут код: github.com/Egolds/WinFormsUserInterface/blob/master/yt_DesignUI/Controls/yt_Button.cs
      На канале также есть ссылки на мой репозиторий. Но я ведь всё рассказал, пропускаю лишь повторяющиеся моменты или совсем простые, учитывай что это видео не ориентировано на совсем новичков. Новички могут просто использовать готовые элементы управления в своем коде.

    • @EasyPlay_su
      @EasyPlay_su 4 роки тому

      @@egolds Я не новичок и не профи, что-то среднее, ну можно же пару фраз вставить что например часть кода я скопирую из файла моего репозитория ну или ссылки в описании оставлять. Спасибо за код =)

    • @redfox7193
      @redfox7193 Місяць тому

      Если только копипастить код сложно чему-то научиться. Надо самому набирать по-хорошему.