Архитектура элементов управления DataGridView (Windows Forms)
Обновлен: Ноябрь 2007
Элемент управления DataGridView и и все связанные с ним классы должны стать гибкой, расширяемой системой для отображения и правки табличных данных. Все эти классы содержатся в пространстве имен System.Windows.Forms и имеют префикс "DataGridView" в имени.
Элементы архитектуры
Основные сопутсвующие классы DataGridView являются производными DataGridViewElement. В следующей объектной модели показана иерархия наследования DataGridViewElement.
Объектная модель DataGridViewElement
Класс DataGridViewElement предоставляет ссылку на родительский элемент управления DataGridView и имеет свойство State со значением, представляющим набор значений из перечисления DataGridViewElementStates.
В следующих разделах сопутствующие классы DataGridView описаны более подробно.
DataGridViewElementStates
Перечисление DataGridViewElementStates содержит следующие значения:
Значения этого перечисления можно объединить с поразрядными логическими операторами так, чтобы свойство State могло выражать более одного состояния одновременно. Например, DataGridViewElement может быть одновременно Frozen, Selected и Visible.
Ячейки и зоны
Элемент управления DataGridView состоит из двух основных типов объектов – ячеек и зон. Все ячейки являются производными от базового класса DataGridViewCell. Два типа зон – DataGridViewColumn и DataGridViewRow – являются производными от базового класса DataGridViewBand.
Элемент управления DataGridView взаимодействует с несколькими классами, но чаще всего встречаются DataGridViewCell, DataGridViewColumn и DataGridViewRow.
DataGridViewCell
Основной единицей взаимодействия для DataGridView является ячейка. Ячейки располагаются в центре и, как правило, используются для ввода данных. Для обращения к ячейкам можно использовать коллекцию Cells класса DataGridViewRow, а для обращения к выбранным ячейкам – коллекцию SelectedCells класса DataGridView. В следующей объектной модели показан пример использования и иерархия наследования DataGridViewCell.
Объектная модель DataGridViewCell
Тип DataGridViewCell представляет собой абстрактный базовый тип класса, от которого происходят все типы ячеек. DataGridViewCell и его производные типы являются не элементами управления Windows Forms, а элементами управления Windows Forms ведущего приложения. Любая возможность изменения, поддерживаемая ячейкой, как правило обрабатывается элементом управления ведущего приложения.
Объекты DataGridViewCell не управляют собственным внешним видом и оформлением так, как это делают элементы управления Windows Forms. Вместо этого, DataGridView отвечает за внешний вид собственных объектов DataGridViewCell. Внешний вид и поведение ячеек можно в значительной степени изменять путем взаимодействия со свойствами и событиями элемента управления DataGridView. В случае особых требований к настройкам, выходящим за пределы возможностей элемента управления DataGridView, можно реализовать собственный производный от DataGridViewCell класс или один из его дочерних классов.
В следующем списке перечислены производные от DataGridViewCell классы.
Пользовательские типы ячеек
DataGridViewColumn
Схема вложененного хранилища данных элемента управления DataGridView выражена в столбцах элемента управления DataGridView. Доступ к столбцам элемента управления DataGridView можно получить при помощи коллекции Columns. Доступ к выбранным столбцам можно получить при помощи коллекции SelectedColumns. В следующей объектной модели показан пример использования и иерархия наследования DataGridViewColumn.
Объектная модель DataGridViewColumn
Некоторым ключевым типам ячеек соответствуют типы столбцов. Они являются производными базового класса DataGridViewColumn.
В следующем списке перечислены производные от DataGridViewColumn классы.
Пользовательские типы столбцов
Элементы управления для редактирования DataGridView
Ячейки, поддерживающие расширенные функции редактирования, как правило, используют элемент управления ведущего приложения, являющийся производным от элемента управления Windows Forms. Эти элементы управления реализуют интерфейс IDataGridViewEditingControl. В следующей объектной модели показано использование этих элементов управления.
Объектная модель элемента управления для редактирования DataGridView
Следующие элементы управления для редактирования предоставляются с элементом управления DataGridView:
Дополнительные сведения о создании собственных элементов управления для редактирования см. в разделе Практическое руководство. Размещение элементов управления в ячейках элемента управления DataGridView в Windows Forms.
В следующей таблице показана связь между типами ячеек, типами столбцов и элементами управления для редактирования.
Тип ячейки |
Элемент управления ведущего приложения |
Тип столбца |
---|---|---|
не определено |
||
не определено |
||
не определено |
||
не определено |
||
DataGridViewRow
Класс DataGridViewRow отображает поля данных записи из хранилища данных, в который вложен элемент управления DataGridView. Доступ к строкам элемента управления DataGridView можно получить при помощи коллекции Rows. Доступ к выбранным строкам можно получить при помощи коллекции SelectedRows. В следующей объектной модели показан пример использования и иерархия наследования DataGridViewRow.
Объектная модель DataGridViewRow
Собственные типы можно получить из класса DataGridViewRow, однако в большинстве случаев это не потребуется. Элемент управления DataGridView имеет несколько связанных со строками событий и свойств для настройки поведения его объектов DataGridViewRow.
После включения свойства AllowUserToAddRows элемента управления DataGridView, в качестве последней появляется специальная строка для добавления новых строк. Эта строка является частью коллекции Rows, но обладает особыми функциональными возможностями, требующими внимания. Дополнительные сведения см. в разделе Использование строки элемента управления DataGridView, предназначенной для ввода новых данных, в Windows Forms.
См. также
Основные понятия
Ссылки
Общие сведения об элементе управления DataGridView (Windows Forms)