Компонент против контроля - PullRequest
10 голосов
/ 23 марта 2009

В мире WinForms .Net control

В чем разница между компонентом и контролем?

  • Может ли элемент управления содержать какой-либо компонент?
  • Может ли компонент содержать какой-либо элемент управления?

Ответы [ 4 ]

7 голосов
/ 24 марта 2009

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

Компоненты все еще могут иметь представление во время выполнения, лучший пример - OpenFileDialog. Но это фактически диалог, встроенный в Windows, а не Windows Forms.

1 голос
/ 13 сентября 2015

A компонент - это, по сути, класс (это может быть dll, объект Activex).

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

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

  • Поскольку элемент управления имеет пользовательский интерфейс, вы можете увидеть его визуальное представление.
  • Это зависит от языка и не переносимо.
1 голос
/ 23 марта 2009

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

Компонент не может содержать элементы управления.

1 голос
/ 23 марта 2009

Компонент - это просто представление объекта / подчиненного API. например. ImageList - это компонент, который невидим и представляет собой просто API в наборе изображений. Тот факт, что вы можете перетаскивать их на формы - просто сахар в конструкторе.

Элемент управления должен быть видимым / интерактивным / нестабильным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...