Элементы управления ImageList работают как провайдер изображений для других элементов управления. Они содержат коллекцию объектов image, на которые можно ссылаться по их порядковому номеру или ключу. Любой элемент управления, имеющий свойство ImageList, может ссылаться на компонент ImageList и использовать его изображения. Примерами таких элементов управления являются ListView, ToolStrip и TreeView.
Примечание
Visual Studio 2008 поставляется с большой библиотекой изображений, которые вы можете использовать с TreeView или любым другим элементом управления (таким как панель управления или меню), которому требуются эти стандартные изображения. По умолчанию эти файлы изображений находятся в C:\ProgramFiles\Microsoft Visual Studio 9.0\Common7\VS2008lmagel_ibrary.
Элемент ImageList не имеет визуального представления на форме; т. е. вы не можете видеть сам ImageList. Он используется исключительно как "закулисный" компонент, который поставляет изображения другим элементам управления. Перетаскивание ImageList на панель визуального конструктора приведет к размещению экземпляра компонента в лотке компонентов (рис. 15.28). Затем вы можете использовать диалоговое окно редактора Images Collection Editor для добавления, редактирования и удаления изображений, содержащихся в компоненте.
Изменение изображений, связанных с ImageList, приведет к автоматическому изменению изображений, используемых любыми элементами управления, ссылающимися на ImageList.
Рис. 15.29. Редактор Images Collection Editor
На рис. 15.29 показано несколько изображений, добавленных для использования в элементе управления TreeView. Для того чтобы TreeView смог использовать эти изображения, вам нужно сделать две вещи:
□ указать в свойстве TreeView.ImageList ссылку на экземпляр компонента ImageList (в данном случае — imageListl);
□ настроить изображение для узла либо программным способом, либо при помощи редактора TreeNode Editor.
Теперь, когда компонент ImageList на месте и TreeView перетащен в левую панель SplitContainer, наша форма с точки зрения конструирования почти закончена. Остались поля, которые будут отображать данные выделенной в элементе управления TreeView записи.
Вы можете добавить эти поля при помощи простого перетаскивания текстовых полей и меток на панель TableLayoutPanel и последующего закрепления их в открытой панели SplitContainer. Но поскольку вы хотите работать с ними как с единым целым (для упрощения позиционирования, привязки данных и т. д.), то вместо этого вы создаете пользовательский элемент управления для отображения записи приложения CSR.