В чем разница между User Control, Custom Control и Component?

Это три разные вещи, которые вы можете добавить в проект, и я не совсем уверен, понимаю ли я эту разницу. Кажется, что все они отображаются, например, в панели инструментов компонента при работе с Form . Каковы некоторые общие сценарии использования для каждого из них? В чем разница?

Основное различие между User Control, Custom Control и Component заключается в том, что они наследуют разные уровни в дереве наследования:

 MyComponent |-> Component MyCustomControl |-> Control |-> Component MyUserControl |-> ContainerControl |-> ScrollableControl |-> Control |-> Component 

Итак, короче говоря, вы получаете различное количество предварительно подключенных функций с различными параметрами.

Когда вы будете использовать разные варианты? (это мысли и мнения, а не истины)

  • Создайте компонент, если вы хотите обеспечить функциональность без пользовательского интерфейса (например, компоненты таймера, источники данных, …)
  • Создайте настраиваемый элемент управления, если вы хотите создать компонент, в котором вы полностью контролируете его внешний вид , и вам не нужен какой-либо багаж ненужных функций. Типичными случаями были бы простые элементы управления с ограниченной функциональностью (например, кнопка)
  • Создайте пользовательский элемент управления, если вы собираетесь объединить существующие элементы управления в многоразовые строительные блоки (например, два списка с кнопками, в которых вы можете перемещать элементы между списками).

Это некоторая разница между CustomControl и UserControl:

Пользовательский контроль

Свободно связанный код управления и пользовательский интерфейс

Вывод из контроля

Определяет пользовательский интерфейс в ResourceDictionary

Пользовательский интерфейс

Имеет динамический макет

Пользовательский интерфейс может быть изменен в разных проектах

Полная поддержка панели инструментов

Определяет один элемент управления

Более гибкий

==============

Пользовательский контроль

Плотно связанный код управления и пользовательский интерфейс

Вывод из UserControl

Определяет пользовательский интерфейс как обычный XAML

Детский контроль

Имеет статический макет

Пользовательский интерфейс является фиксированным и не может иметь разные взгляды в разных проектах

Невозможно добавить в панель инструментов

Определяет набор элементов управления

Не очень гибкий, как пользовательский контроль

Добавляя к тому, что сказал Фредрик, обычно компоненты и пользовательские элементы управления будут использоваться, когда вы планируете повторно использовать их в проектах. Используйте пользовательские элементы управления, когда вы будете использовать его только в одном проекте.

На мой взгляд, последнее утверждение неверно. Я создаю пользовательские элементы управления по разным причинам.

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

Сначала я создаю библиотеку classов, затем добавляю к нему пользовательские элементы управления. Теперь, если мне нужно изменить какую-либо часть логики, по которой работает пользовательский контроль, я могу очень легко. Также эту библиотеку classов можно использовать несколько раз.

Кроме того, в одной и той же classной библиотеке я могу иметь несколько classов, которые могут совместно использоваться и использоваться для любого из моих пользовательских элементов управления.

Это основная причина, по которой я использую пользовательские элементы управления. И если вы внесете изменения в свой пользовательский элемент управления или библиотеку classов. как только вы создадите работу. dll будет динамически обновлять дату в папке bin.

Поэтому, если я ссылаюсь на это в другом проекте Эти изменения также появятся в новом проекте.

Также он не использует те же процедуры рисования, что и форма, и все, что вы загрузили в форму.

Таким образом, пользовательские элементы управления дают нам возможность быть очень модульными. И я могу иметь несколько пользовательских элементов управления, которые разделяют базовые classы библиотеки classов … Поэтому цель управления пользователями – это не только один проект. В этом отношении нет никаких ограничений. Джефф

Основное различие между ними – User Control – это файл с расширением .ascx, который может использоваться только в одном приложении или проекте. Но настраиваемые элементы управления – это сборки (файлы dll), которые могут использоваться в нескольких приложениях.

  • Как получить доступ к управлению текстовым полем Winform из другого classа?
  • Interesting Posts

    Сообщение об ошибке «Невозможно загрузить один или несколько запрошенных типов. Получите свойство LoaderExceptions для получения дополнительной информации. ‘

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

    Как изменить разрешения для всех файлов в каталоге и при добавлении новых файлов к значениям по умолчанию?

    Как архивировать с помощью подкаталогов с помощью командной строки 7-Zip? Или, как я могу сохранить структуру папок во время архивации?

    Как изменить цвет фона в меню параметров?

    Что отключает мой DSL-модем?

    Воспроизведение звука на iPhone даже в бесшумном режиме

    Как сделать select column, а затем редактировать в GNU Emacs?

    Как проверить, есть ли плохой сектор на внешнем жестком диске USB на OS X?

    Чтение данных из SqlDataReader

    как мне искать объект по ObjectId в консоли?

    Как освободить память «полностью спящий» процесс?

    Eclipse JUNO не запускается

    Как использовать ROW_NUMBER в sqlite

    как точно вычислить инверсию матрицы?

    Давайте будем гением компьютера.