Типы столбцов элемента управления DataGridView в Windows Forms
Элемент управления DataGridView использует несколько типов столбцов для отображения сведений и предоставления пользователям возможности изменять или добавлять их.
При привязке элемента управления DataGridView и установке свойства AutoGenerateColumns столбцы true
автоматически создаются с использованием типов столбцов по умолчанию, соответствующих типам данных, содержащимся в привязанном источнике данных.
Вы также можете создавать экземпляры любого класса столбцов самостоятельно и добавлять их в коллекцию, возвращаемую свойством Columns. Создаваемые таким образом экземпляры можно использовать в качестве непривязанных столбцов или привязать вручную. Привязанные вручную столбцы применяются, например, когда требуется заменить автоматически созданный столбец одного типа столбцом другого типа.
В следующей таблице описываются различные классы столбцов, доступные для использования в элементе управления DataGridView.
Класс | Description |
---|---|
DataGridViewTextBoxColumn | Используется с текстовыми значениями. Создается автоматически при привязке к числовым значениям и строкам. |
DataGridViewCheckBoxColumn | Используется со значениями Boolean и CheckState. Создается автоматически при привязке к значениям этих типов. |
DataGridViewImageColumn | Используется для отображения изображений. Создается автоматически при привязке к массивам байтов, а также к объектам Image или Icon. |
DataGridViewButtonColumn | Используется для отображения кнопок в ячейках. Не создается автоматически при привязке. Обычно используется в качестве непривязанных столбцов. |
DataGridViewComboBoxColumn | Используется для отображения раскрывающихся списков в ячейках. Не создается автоматически при привязке. Обычно привязывается к данным вручную. |
DataGridViewLinkColumn | Используется для отображения ссылок в ячейках. Не создается автоматически при привязке. Обычно привязывается к данным вручную. |
Пользовательские типы столбцов | Вы можете создать собственный класс столбцов путем наследования от класса DataGridViewColumn или любого производного от него класса, чтобы самостоятельно задать внешний вид, поведение или размещаемые элементы управления. Дополнительные сведения см. в статье Практическое руководство. Дополнительные возможности управления внешним видом и поведением ячеек и столбцов элемента управления DataGridView в Windows Forms. |
Эти типы столбцов подробно описаны в следующих разделах.
DataGridViewTextBoxColumn
DataGridViewTextBoxColumn — это тип столбца общего назначения для использования с текстовыми значениями, такими как числа и строки. В режиме редактирования элемент управления TextBox отображается в активной ячейке, что позволяет пользователям изменять значение ячейки.
Для отображения значения ячеек автоматически преобразуются в строки. Введенные или измененные пользователем значения автоматически анализируются для создания значения ячейки соответствующего типа данных. Эти преобразования можно настроить, реализовав обработку событий CellFormatting и CellParsing элемента управления DataGridView.
Тип данных значения ячейки столбца указывается в свойстве ValueType столбца.
DataGridViewCheckBoxColumn
Элемент DataGridViewCheckBoxColumn используется со значениями Boolean и CheckState. Значения типа Boolean отображаются как флажки с двумя или тремя состояниями в зависимости от значения свойства ThreeState. Если столбец привязан к значениям типа CheckState, свойство ThreeState по умолчанию имеет значение true
.
Как правило, значения ячеек с флажками предназначены либо для хранения данных любого вида, либо для выполнения массовых операций. Если вы хотите обеспечить немедленную реакцию при щелчке в ячейке с флажком, можно предусмотреть обработку события CellClick, однако необходимо учитывать, что это событие возникает до обновления значения ячейки. Если в момент щелчка вам требуется новое значение, в качестве варианта можно вычислить ожидаемое значение на основе текущего. Кроме того, можно немедленно зафиксировать изменение и обработать событие CellValueChanged для ответа. Чтобы зафиксировать изменение при щелчке в ячейке, необходимо обработать событие CurrentCellDirtyStateChanged. Если текущая ячейка содержит флажок, вызовите в обработчике метод CommitEdit и передайте в него значение Commit.
DataGridViewImageColumn
Элемент DataGridViewImageColumn используется для отображения изображений. Столбцы изображений можно заполнять автоматически из источника данных, вручную (для непривязанных столбцов) или динамически в обработчике события CellFormatting.
Для автоматического заполнения столбца изображений из источника данных поддерживаются массивы байтов изображений в различных форматах, включая все форматы, поддерживаемые классом Image, а также формат OLE Picture, используемый в Microsoft® Access и в образце базы данных Northwind.
Заполнение столбца изображений вручную применяется тех случаях, когда требуется реализовать функциональные возможности элемента DataGridViewButtonColumn с настраиваемым внешним видом. Для реакции на щелчки в ячейке с изображением можно предусмотреть обработку события DataGridView.CellClick.
Заполнение ячеек столбца изображений в обработчике события CellFormatting применяется в тех случаях, когда требуется предоставить изображения для вычисляемых значений или значений в форматах, отличных от изображений. Например, это может быть столбец "Risk" (Риск) со строковыми значениями, такими как "high"
, "middle"
и "low"
, которые требуется отобразить в виде значков. Или это может быть столбец "Image" (Изображение), содержащий координаты изображений, которые необходимо загрузить, а не двоичное содержимое изображений.
DataGridViewButtonColumn
С помощью элемента DataGridViewButtonColumn можно отобразить столбец ячеек, содержащих кнопки. Такой подход применяется, если вы хотите предоставить пользователям простой способ выполнять действия с определенными записями, например размещать заказ или отображать дочерние записи в отдельном окне.
Столбцы кнопок не создаются автоматически при привязке данных к элементу управления DataGridView. Чтобы использовать столбцы кнопок, их необходимо создать вручную и добавить в коллекцию, возвращаемую свойством DataGridView.Columns.
Чтобы обеспечить реакцию на щелчки пользователя в ячейках с кнопками, необходимо предусмотреть обработку события DataGridView.CellClick.
DataGridViewComboBoxColumn
С помощью элемента DataGridViewComboBoxColumn можно отобразить столбец ячеек, содержащих раскрывающиеся списки. Такой элемент применяется для ввода данных в поля, которые могут содержать только определенные значения, как, например, в столбце "Category" (Категория) таблицы "Products" (Продукты) в образце базы данных Northwind.
Раскрывающиеся списки во всех ячейках можно заполнять так же, как и раскрывающийся список ComboBox: вручную с использованием коллекции, возвращаемой свойством Items, или посредством привязки к источнику данных с помощью свойств DataSource, DisplayMember и ValueMember. Дополнительные сведения см. в статье Элемент управления ComboBox.
Фактические значения ячеек можно привязать к источнику данных, используемому элементом управления DataGridView, задав свойство DataPropertyName элемента управления System.Windows.Forms.DataGridViewComboBoxColumn.
Столбцы полей со списком не создаются автоматически при привязке данных к элементу управления DataGridView. Чтобы использовать столбцы полей со списком, их необходимо создать вручную и добавить в коллекцию, возвращаемую свойством Columns.
DataGridViewLinkColumn
С помощью элемента DataGridViewLinkColumn можно отобразить столбец ячеек, содержащих гиперссылки. Этот элемент применяется для отображения значений URL-адресов в источнике данных или в качестве альтернативы столбцу кнопок для выполнения определенных действий, таких как открытие окна с дочерними записями.
Столбцы ссылок не создаются автоматически при привязке данных к элементу управления DataGridView. Чтобы использовать столбцы ссылок, их необходимо создать вручную и добавить в коллекцию, возвращаемую свойством Columns.
Чтобы обеспечить реакцию на щелчки пользователя по ссылкам, необходимо предусмотреть обработку события CellContentClick. Это событие отличается от событий CellClick и CellMouseClick, которые возникают, когда пользователь щелкает в любом месте ячейки.
Класс DataGridViewLinkColumn предоставляет несколько свойств для изменения внешнего вида ссылок до, во время и после того, как пользователь щелкнет их.
См. также
- DataGridView
- DataGridViewColumn
- DataGridViewButtonColumn
- DataGridViewCheckBoxColumn
- DataGridViewComboBoxColumn
- DataGridViewImageColumn
- DataGridViewTextBoxColumn
- DataGridViewLinkColumn
- Элемент управления DataGridView
- Практическое руководство. Вывод изображений в ячейках элемента управления DataGridView в Windows Forms
- Практическое руководство. Работа со столбцами изображений в элементе управления DataGridView в Windows Forms
- Настройка элементов управления DataGridView в Windows Forms
.NET Desktop feedback