Архитектура элементов управления DataGridView (Windows Forms)

Обновлен: Ноябрь 2007

Элемент управления DataGridView и и все связанные с ним классы должны стать гибкой, расширяемой системой для отображения и правки табличных данных. Все эти классы содержатся в пространстве имен System.Windows.Forms и имеют префикс "DataGridView" в имени.

Элементы архитектуры

Основные сопутсвующие классы DataGridView являются производными DataGridViewElement. В следующей объектной модели показана иерархия наследования 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 представляет собой абстрактный базовый тип класса, от которого происходят все типы ячеек. DataGridViewCell и его производные типы являются не элементами управления Windows Forms, а элементами управления Windows Forms ведущего приложения. Любая возможность изменения, поддерживаемая ячейкой, как правило обрабатывается элементом управления ведущего приложения.

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

В следующем списке перечислены производные от DataGridViewCell классы.

DataGridViewColumn

Схема вложененного хранилища данных элемента управления DataGridView выражена в столбцах элемента управления DataGridView. Доступ к столбцам элемента управления DataGridView можно получить при помощи коллекции Columns. Доступ к выбранным столбцам можно получить при помощи коллекции SelectedColumns. В следующей объектной модели показан пример использования и иерархия наследования DataGridViewColumn.

Объектная модель DataGridViewColumn
Объектная модель DataGridViewColumn

Некоторым ключевым типам ячеек соответствуют типы столбцов. Они являются производными базового класса DataGridViewColumn.

В следующем списке перечислены производные от DataGridViewColumn классы.

Элементы управления для редактирования DataGridView

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

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

Следующие элементы управления для редактирования предоставляются с элементом управления DataGridView:

Дополнительные сведения о создании собственных элементов управления для редактирования см. в разделе Практическое руководство. Размещение элементов управления в ячейках элемента управления DataGridView в Windows Forms.

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

Тип ячейки

Элемент управления ведущего приложения

Тип столбца

DataGridViewButtonCell

не определено

DataGridViewButtonColumn

DataGridViewCheckBoxCell

не определено

DataGridViewCheckBoxColumn

DataGridViewComboBoxCell

DataGridViewComboBoxEditingControl

DataGridViewComboBoxColumn

DataGridViewImageCell

не определено

DataGridViewImageColumn

DataGridViewLinkCell

не определено

DataGridViewLinkColumn

DataGridViewTextBoxCell

DataGridViewTextBoxEditingControl

DataGridViewTextBoxColumn

DataGridViewRow

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

Объектная модель DataGridViewRow
Объектная модель DataGridViewRow

Собственные типы можно получить из класса DataGridViewRow, однако в большинстве случаев это не потребуется. Элемент управления DataGridView имеет несколько связанных со строками событий и свойств для настройки поведения его объектов DataGridViewRow.

После включения свойства AllowUserToAddRows элемента управления DataGridView, в качестве последней появляется специальная строка для добавления новых строк. Эта строка является частью коллекции Rows, но обладает особыми функциональными возможностями, требующими внимания. Дополнительные сведения см. в разделе Использование строки элемента управления DataGridView, предназначенной для ввода новых данных, в Windows Forms.

См. также

Основные понятия

Использование строки элемента управления DataGridView, предназначенной для ввода новых данных, в Windows Forms

Ссылки

Общие сведения об элементе управления DataGridView (Windows Forms)

Другие ресурсы

Настройка элементов управления DataGridView в Windows Forms