2009-03-23 2 views
9

В мире WinForms .Net-элементы управленияКомпонент Vs Управление

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

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

+0

Эта статья может помочь: http://msdn.microsoft.com/en-us/library/0b1dk63b.aspx –

ответ

5

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

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

+0

И кажется, что компоненты не имеют события 'Load'. Итак, как вы выполняете инициализацию, которая должна возникнуть после загрузки формы, содержащей компонент? ??? –

+0

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

+0

Мой компонент определенно заботится, так как все обработчики событий равны нулю при запуске конструктора. Вы можете увидеть мой вопрос [здесь] (http://stackoverflow.com/questions/17332643/determining-when-the-owner-of-a-component-has-loaded). Благодарю. –

1

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

A Устройство управления должно быть видимым/взаимодействующим/гнездовым.

+0

Существует и другая часть вопроса. – NileshChauhan

0

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

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

1

A Компонент - это в основном класс (это может быть DLL, объект Activex).

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

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

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