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
*➤ Стань моим Патроном:* *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
Единственный видос про собств контрол. Огромное спасибо
Пожалуйста, скоро будут ещё такие)
@@egolds очень жду)
а можно про tabcontrol?
Для моего проекта понадобился с вертикальной раскладкой. Давно нагуглил с перерисовкой, норм и работал, но сейчас появились требования к внешнему виду.
-на вкладке кнопка для закрытия
-последняя вкладка - плюсик, для создания новой вкладки
-после создания вкладки она открывает OpenFileDialog
сегодня идея зародилась, уже нашел habr.com/ru/post/170375/, но все не то
@@MRoose Без проблем, в планах сейчас два видео, и скорее всего твоя идея, это будет третьим роликом, только вопрос, для чего это нужно: "после создания вкладки она открывает OpenFileDialog"? какие дальнейшие действия?
@@egolds опишу вкратце, если требуется, могу ссылки на темы с киберфорума скинуть(с того года обсуждения веду)
коллегам по работе помогаю собирать пожелания к расписанию.
Отделов несколько, тысячи сотрудников.
Отделы могут добавляться.
Все это через БД SQLite (нет сервера, онли сетевой диск).
Вообщем из csv получаем данные о сотрудниках, одна бд - марштрутизатор. Из нее выходим на бд отдела, в ней параметры к сбору.
Все это выполняется через админку, в ней в каждом tabPage свой функционал (создать список вопросов с ответами, добавить отдел и тп)
Функционал возможно будет увеличиваться.
Так вот, из-за моего ничтожного опыта, любое внесение новой фичи заставляет переписывать весь код.
Сейчас все описанное - пока в разработке (в релизе старая версия, которая в качестве бд использует .xslx)
Пытаюсь красиво все построить. Решил вынести каждую задачу в модуль-dll с usercontrol-ом, который будет загружаться в tabPage.
В итоге, думаю оставить форму чисто для отображения модулей, а модули будут по запросу подгружаться, что упростит обнову.
Ну собственно через OpenFD и будет админ выбирать dll
На крайняк - думаю вместо tabControl сделать кнопочки, но открываться будут формы, а не UserControl
@@MRoose я думаю сделаю видео, где выполню реализацию tabcontrol полностью с нуля, с возможностью закрытия вкладок по кнопке-крестику как в браузере, и кнопку "+" для добавления новой вкладки, ну и конечно загружу исходник на github, так что ожидай)
P.S. У нас кстати, в фирме продукт, который мы предоставляем нашим клиентам, работает так что имеет вкладки, и эти вкладки подгружают содержимое из DLL, разным клиентам нужен разный функционал, каждому свои правки, но приложение одно, в общем что-то похожее на то что ты расписал, правда ваш софт внутри корпорации используется)
Всегда любил твои контроллы)) Пожалуйста выкладывай так же исходники было бы очень полезно.
И можешь пожалуйста сделать разбор на чекбоксы и выдвигающии панели ?
Продолжение будет, исходники также буду выкладывать, будет много видео уроков на эту тематику)
Лол, я сюжу, перепроверяю, сравниваю твой код с тем, что написал я, думал что где-то ошибка, мол у тебя кнопка есть, а у меня ее нет, короче, я тупо невнимателен!
видео хорошее и понятное, спасибо!
Спс за урок.
Пока ничего, как начинающему, не понятно, но очень интересно
Тут учат не C# а интерфейс на C#
всё надо рисовать! Весь интерфейс!
Спасибо, интересно!
Побольше бы видосов про свой интерфейс. Классное видео.
Благодарю)
Как у тебя само появилось в меню самописный элемент? Что за видео для специалистов в шарпе?
Взял готовый код с гит, компилятор подчеркивает Animation, Drawer, Animator?
На 1:12 в панели ничего нового не появляется, даже если создаёшь конкретно "пользовательский элемент", который наследуется от UserControl
Пересборка и компиляция не помогает
такая же проблема. Получилось как-то решить?
@@Tim_Obozny Да, средства - параметры - конструктор Windows forms - автоматически заполнять панель элементов на true.
Нашел это в комментах
@@pody8205 Спасибо!
А почему в таком случае (если вы хотите отказаться от стандартных контролов Windows Forms в пользу кастомных) не использовать тогда уже WPF вместо Windows Forms?
Ну вот такой интерес у меня, 5 лет назад был :) Сейчас то на WPF в основном сижу, а недавно перешел на Avalonia UI, рекомендую
А как насчёт теней? Или GDI не справляется с этим?
А так же советую прочитать в википедии что такое "Урок". И не путать его с тем что происходит на видео.
Спасибо за совет
Зачем нужен не закрашенный прямоугольник?
Видео хорошее, сохранил.
Можно и без него, с ним четкие границы определяем
Неплохо)
Спасибо)
Напишите пожалуйста стиль на Список(плейлист)
И да, реализуйте чтобы можно было не только текст туда добавлять, но и изображение)
В последних обновлениях там уже и шторка, и дополнительный текст и использование градиента и закругление, но вот про картинку забыл, обязательно добавлю)
А что за список? Как называется элемент управления? ListView?
@@egolds Нет. ListBox1. Кратко: Плейлист для плеера(как у windows 10 например) UI ListBox(Playlist)
Ааа, ну тоже кастомный контрол, внесу в список идей, может быть реализую)
про ботнет будет?
Будет, но позже, сейчас решил разбавить немного другим)
Взял готовый код с гит, компилятор подчеркивает Animation, Drawer, Animator, ControlDesigner и SelectionRules
тоже самое, ты как-то это исправил ?)
Как то исправил но уже не помню 🤣
🎆
здравствуйте. сделал я все, как у вас в видео, захотел сменить цвет кнопки, переписал в коде, присвоил значение Gray. но все равно в конструкторе ставится цвет Tomato, даже если я вообще уберу присвоение. как это решить?
А не, исправил. Нужно просто сбросить панель элементов, и запустить проект. Тогда все применится.
Заметил такую вещь, то что кастомная кнопка плохо обрабатывает события
при частом клике, но если унаследоваться не от Control, а от Button, то
такая аномалия пропадает и кнопка ведет себя хорошо, интересно с чем это
связано
Да, тоже обратил на это внимание, но пока не разбирал с чем это связано, думаю всё таки лучше использовать родительский класс Button.
@@egolds Привет, а как использовать родительский класс Button, что нужно поменять?
@@artur_crack Привет, ну вот там где на видео на 1:04 я пишу : Control нужно написать : Button
Как задать текст для кнопки ("Кнопка такая-то") внутри этого контрола, так чтоб yt_Button как имя остался неизменным, а текст можно было присвоить любой?
Текст задается в свойстве Text, а имя в свойстве Name, уже когда кнопка была добавлена на форму
в самом коде yt_Button это сделать нельзя, до того как кнопка добавлена на форму? то, что можно поменять в form.cs это понятно. Я говорю про Text. т.к name = названию класса yt_Button.
Нужно поменять название самого класса кнопки. Либо попробовать в конструкторе кнопки установить текст: Text = "...";
Я пробовал делать но у меня почему то, кнопка как бы работает но после того как закрываю проект или когда запускаю у меня в конструкторе вылетает ошибка
После того как закрываешь/запускаешь проект в VS или саму программу? Какая ошибка, что там написано?
Создал компонент. Как его поместить на форму? Он у меня под формой помещается.
Нужно создать usercontrol, а не usercomponent
@@egolds Ну это то понятно. А если с нуля делать? В готовом много лишних свойств, которые не нужны.
Почему у тебя до сих пор мало подписчиков? Я не понимаю
Почему наследуемся от Control а не от BaseButton?
Можно наследоваться от класса Button, особо разницы никакой, кроме дополнительных свойств, полей, событий и методов реализованных в классе Button. Просто класс Control является базовым классом всех элементов управления, поэтому решил создавать кнопку с нуля.
А если имеешь ввиду класс ButtonBase, то ведь он используется в WPF, а на видео - Windows Forms =)
А как можно сделать анимированную кнопку из Фотошопа на C#?
Нужно программно делать, как я показывал в других видео на канале
А что если совсем ПК нет ? Но хочется кодить на сишке ?
Ну наверное можно на телефоне, но это совсем будет как-то не очень, потому что как минимум нужно выполнять отладку, запускать приложение, итд. Разве что попробовать писать вебприложения на шарпе, но я не знаю что и как там..
сейчас комп можно купить дешевле телефона )
Zoir
Привет, Egolds!
Куда пропал??? Ты канал уже забросил?:(
Привет, я всё ещё тут, контент будет, когда точно не знаю, но будет, я по крупицам готовлюсь к восстановлению)
@@egolds Ооо, думал уже все забросил))
Ждем твои видео!!!
Ну на самом деле, что за урок, я со скоростью в 0,25 ничего не успеваю заметить. Поэтому тупо на первых 20 сек видео завис и пошел смотреть другие видео. Ну это так для информации.
Вполне может быть, благодарю
можно название музыки из видео?
Сори не заметил твой комментарий.
Название: Text Me Records / Bobby Renz | Undeniable
Я его брал из фонотеки ютуба.
@@egolds спасибо) Я думал уже на такие коменты не отвечают)
Пожалуйста, ещё отвечаю)
Можешь видео с кривой безье записать?
Вряд ли буду снимать об этом, а о чем вообще там снять можно, о самих вычислениях?
@@egolds да ну можно саму программу как рисует кривую Безье
В чем прикол видео в перемотке, ничего не понятно, при вводе команды половина просто в кадр не попадает от того что ты видео мотаешь, так же можешь посмледующие ролики выкладывать без картники, просто черный фон, толку от того что есть сейчас нету. И где исходники? Или так сложно эти гребанные 100кб залить на ядиск или гдиск?!
Вот тут код: github.com/Egolds/WinFormsUserInterface/blob/master/yt_DesignUI/Controls/yt_Button.cs
На канале также есть ссылки на мой репозиторий. Но я ведь всё рассказал, пропускаю лишь повторяющиеся моменты или совсем простые, учитывай что это видео не ориентировано на совсем новичков. Новички могут просто использовать готовые элементы управления в своем коде.
@@egolds Я не новичок и не профи, что-то среднее, ну можно же пару фраз вставить что например часть кода я скопирую из файла моего репозитория ну или ссылки в описании оставлять. Спасибо за код =)
Если только копипастить код сложно чему-то научиться. Надо самому набирать по-хорошему.