Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Элемент DataGridView управления использует несколько типов столбцов для отображения сведений и предоставления пользователям возможности изменять или добавлять сведения.
При привязке DataGridView элемента управления и задания AutoGenerateColumns свойства true
столбцы автоматически создаются с помощью типов столбцов по умолчанию, соответствующих типам данных, содержащимся в связанном источнике данных.
Вы также можете создавать экземпляры любого из классов столбцов самостоятельно и добавлять их в коллекцию, возвращаемую свойством Columns . Эти экземпляры можно создать для использования в качестве несвязанных столбцов или вручную привязать их. Вручную связанные столбцы полезны, например, когда вы хотите заменить автоматически созданный столбец одного типа столбцом другого типа.
В следующей таблице описаны различные классы столбцов, доступные для использования в элементе DataGridView управления.
Класс | Описание |
---|---|
DataGridViewTextBoxColumn | Используется с текстовыми значениями. Создается автоматически при привязке к числам и строкам. |
DataGridViewCheckBoxColumn | Используется с Boolean и CheckState значениями. Создается автоматически при привязке к значениям этих типов. |
DataGridViewImageColumn | Используется для отображения изображений. Создается автоматически при привязке к массивам байтов, Image объектам или Icon объектам. |
DataGridViewButtonColumn | Используется для отображения кнопок в ячейках. Не создается автоматически при привязке. Обычно используется в качестве несвязанных столбцов. |
DataGridViewComboBoxColumn | Используется для отображения раскрывающихся списков в ячейках. Не создается автоматически при привязке. Обычно привязка к данным выполняется вручную. |
DataGridViewLinkColumn | Используется для отображения ссылок в ячейках. Не создается автоматически при привязке. Обычно привязка к данным выполняется вручную. |
Тип настраиваемого столбца | Вы можете создать собственный класс столбцов, наследуя DataGridViewColumn класс или любой из производных классов, чтобы обеспечить настраиваемый внешний вид, поведение или размещенные элементы управления. Дополнительные сведения см. в разделе "Практическое руководство. Настройка ячеек и столбцов в элементе управления DataGridView Windows Forms путем расширения их поведения и внешнего вида" |
Эти типы столбцов подробно описаны в следующих разделах.
DataGridViewTextBoxColumn
Это DataGridViewTextBoxColumn тип столбца общего назначения для использования с текстовыми значениями, такими как числа и строки. В режиме TextBox редактирования элемент управления отображается в активной ячейке, что позволяет пользователям изменять значение ячейки.
Значения ячеек автоматически преобразуются в строки для отображения. Значения, введенные или измененные пользователем, автоматически анализируются для создания значения ячейки соответствующего типа данных. Эти преобразования можно настроить, обрабатывая CellFormatting и CellParsing события DataGridView элемента управления.
Тип данных значения ячейки столбца указывается в ValueType свойстве столбца.
Столбец флажков DataGridView (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 полезно, если нужно предоставить изображения для вычисляемых значений или для значений в не-графических форматах. Например, у вас может быть столбец "Риск" со строковыми значениями, такими как "high"
, "middle"
и "low"
которые вы хотите отобразить как значки. Кроме того, у вас может быть столбец Image, содержащий расположения изображений, которые должны быть загружены, а не двоичное содержимое изображений.
DataGridViewButtonColumn
DataGridViewButtonColumnС помощью этого элемента можно отобразить столбец ячеек, содержащих кнопки. Это удобно, если вы хотите предоставить пользователям простой способ выполнения действий в определенных записях, таких как размещение заказа или отображение дочерних записей в отдельном окне.
Столбцы кнопки не создаются автоматически при привязке DataGridView к данным элемента управления. Чтобы использовать столбцы кнопок, необходимо создать их вручную и добавить их в коллекцию, возвращаемую свойством DataGridView.Columns .
Вы можете реагировать на щелчки пользователей в ячейках кнопок, обрабатывая DataGridView.CellClick событие.
DataGridViewComboBoxColumn
DataGridViewComboBoxColumnС помощью этого элемента можно отобразить столбец ячеек, содержащих раскрывающиеся списки. Это полезно для записи данных в полях, которые могут содержать только определенные значения, например столбец "Категория" таблицы 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