В чем разница между элементом управления и UserControl в .NET WinForms? Я хочу создать пользовательский элемент управления, но с которого мне следует унаследовать? Я всегда использовал Control в прошлом без каких-либо проблем, но является ли "рекомендуемым" способом создания настраиваемого элемента управления?
Контроль против UserControl в WinForms?
Ответ 1
Вот хорошая статья об этом вопросе. пользовательские элементы управления
Короче говоря
Элемент управления либо наследуется, либо полностью настраивается. Вы сами пишете и обрабатываете многие события. Вы можете даже контролировать, как и когда элемент управления выполняется с помощью использования GDI + рисунок.
Пользователь UserControl представляет собой набор элементов управления, которые вместе используются для использования определенным образом. Например, вы можете разместить GroupBox, который содержит текстовые поля, флажки и т.д. Это полезно, когда вам нужно разместить одну и ту же группу элементов управления в нескольких формах или вкладках. Примечание. Вы также можете написать некоторые пользовательские события и рисунок для UserControls.
Ответ 2
Управление пользователями: любой элемент управления, унаследованный от класса UserControl; Эти стили элементов управления имеют разметку, связанную с ними, и может иметь выделенный код, поддерживающий тип вашего проекта (может ли ваш проект быть веб-сайтом или онлайн-приложением). Эти элементы управления не слишком удобны для повторного использования. они превосходные кандидаты для использования в качестве представлений в MVC (Model-View-Controller).
Пользовательское управление: любой элемент управления, унаследованный от управления, или WebControl, или CompositeControl, или DataBoundControl, или других базовых категорий в .NET. Эти элементы управления не имеют связанной с ними разметки. они достаточно умны для того, чтобы быть инкапсулированными в DLL и многократно использоваться в нескольких приложениях. Пользовательские системы управления обычно требуют дополнительного понимания того, как работает интернет, и вы всегда пишете методы CreateChildren или Render, чтобы увидеть выходные данные элемента управления. С# Control