Типы столбцов элемента управления DataGridView в Windows FormsColumn Types in the Windows Forms DataGridView Control

Элемент управления DataGridView использует несколько типов столбцов для вывода сведений и позволяет пользователям изменять или добавлять данные.The DataGridView control uses several column types to display its information and enable users to modify or add information.

При привязке DataGridView элемента управления и присвоении свойству AutoGenerateColumns значения trueстолбцы автоматически создаются с использованием типов столбцов по умолчанию, соответствующих типам данных, содержащимся в связанном источнике данных.When you bind a DataGridView control and set the AutoGenerateColumns property to true, columns are automatically generated using default column types appropriate for the data types contained in the bound data source.

Можно также создать экземпляры любого класса столбцов самостоятельно и добавить их в коллекцию, возвращенную свойством Columns.You can also create instances of any of the column classes yourself and add them to the collection returned by the Columns property. Эти экземпляры можно создать для использования в качестве несвязанных столбцов или можно вручную привязать их.You can create these instances for use as unbound columns, or you can manually bind them. Связанные вручную столбцы полезны, например, когда необходимо заменить автоматически созданный столбец одного типа столбцом другого типа.Manually bound columns are useful, for example, when you want to replace an automatically generated column of one type with a column of another type.

В следующей таблице описаны различные классы столбцов, доступные для использования в элементе управления DataGridView.The following table describes the various column classes available for use in the DataGridView control.

ClassClass DescriptionDescription
DataGridViewTextBoxColumn Используется со значениями, основанными на тексте.Used with text-based values. Создается автоматически при привязке к числам и строкам.Generated automatically when binding to numbers and strings.
DataGridViewCheckBoxColumn Используется со значениями Boolean и CheckState.Used with Boolean and CheckState values. Создается автоматически при привязке к значениям этих типов.Generated automatically when binding to values of these types.
DataGridViewImageColumn Используется для вывода изображений.Used to display images. Создается автоматически при привязке к массивам байтов, Image объектам или Icon объектам.Generated automatically when binding to byte arrays, Image objects, or Icon objects.
DataGridViewButtonColumn Используется для вывода кнопок в ячейках.Used to display buttons in cells. Не создается автоматически при привязке.Not automatically generated when binding. Обычно используется как непривязанные столбцы.Typically used as unbound columns.
DataGridViewComboBoxColumn Используется для вывода раскрывающихся списков в ячейках.Used to display drop-down lists in cells. Не создается автоматически при привязке.Not automatically generated when binding. Обычно привязка данных осуществляется вручную.Typically data-bound manually.
DataGridViewLinkColumn Используется для вывода ссылок в ячейках.Used to display links in cells. Не создается автоматически при привязке.Not automatically generated when binding. Обычно привязка данных осуществляется вручную.Typically data-bound manually.
Тип настраиваемого столбцаYour custom column type Можно создать собственный класс столбца, наследуя класс DataGridViewColumn или любой из его производных классов для предоставления пользовательского внешнего вида, поведения или размещенных элементов управления.You can create your own column class by inheriting the DataGridViewColumn class or any of its derived classes to provide custom appearance, behavior, or hosted controls. Дополнительные сведения см. в разделе как настроить ячейки и столбцы в элементе управления Windows Forms DataGridView путем расширения их поведения и внешнего вида.For more information, see How to: Customize Cells and Columns in the Windows Forms DataGridView Control by Extending Their Behavior and Appearance

Эти типы столбцов более подробно описаны в следующих разделах.These column types are described in more detail in the following sections.

датагридвиевтекстбоксколумнDataGridViewTextBoxColumn

DataGridViewTextBoxColumn является типом столбца общего назначения для использования с текстовыми значениями, такими как числа и строки.The DataGridViewTextBoxColumn is a general-purpose column type for use with text-based values such as numbers and strings. В режиме редактирования в активной ячейке отображается TextBox элемент управления, позволяющий пользователям изменять значение ячейки.In editing mode, a TextBox control is displayed in the active cell, enabling users to modify the cell value.

Значения ячеек автоматически преобразуются в строки для вывода.Cell values are automatically converted to strings for display. Значения, введенные или измененные пользователем, автоматически анализируются для создания значения ячейки соответствующего типа данных.Values entered or modified by the user are automatically parsed to create a cell value of the appropriate data type. Эти преобразования можно настроить, обрабатывая события CellFormatting и CellParsing элемента управления DataGridView.You can customize these conversions by handling the CellFormatting and CellParsing events of the DataGridView control.

Тип данных значения ячейки столбца указывается в свойстве ValueType столбца.The cell value data type of a column is specified in the ValueType property of the column.

датагридвиевчеккбоксколумнDataGridViewCheckBoxColumn

DataGridViewCheckBoxColumn используется со значениями Boolean и CheckState.The DataGridViewCheckBoxColumn is used with Boolean and CheckState values. Boolean значения отображаются как флажки с двумя состояниями или три состояния, в зависимости от значения свойства ThreeState.Boolean values display as two-state or three-state check boxes, depending on the value of the ThreeState property. Если столбец привязан к CheckState значениям, значение свойства ThreeState по умолчанию равно true.When the column is bound to CheckState values, the ThreeState property value is true by default.

Как правило, значения ячеек флажков предназначены для хранения, например для любых других данных, или для выполнения операций с массовыми операциями.Typically, check box cell values are intended either for storage, like any other data, or for performing bulk operations. Если вы хотите ответить немедленно, когда пользователь нащелкнул ячейку флажка, можно обработать событие CellClick, но это событие происходит перед обновлением значения ячейки.If you want to respond immediately when users click a check box cell, you can handle the CellClick event, but this event occurs before the cell value is updated. Если требуется новое значение во время щелчка, можно вычислить ожидаемое значение на основе текущего значения.If you need the new value at the time of the click, one option is to calculate what the expected value will be based on the current value. Другой подход заключается в фиксации изменения немедленно и обработке события CellValueChanged для реагирования на него.Another approach is to commit the change immediately, and handle the CellValueChanged event to respond to it. Чтобы зафиксировать изменение при щелчке ячейки, необходимо выполнить обработку события CurrentCellDirtyStateChanged.To commit the change when the cell is clicked, you must handle the CurrentCellDirtyStateChanged event. Если в обработчике текущая ячейка является ячейкой флажка, вызовите метод CommitEdit и передайте значение Commit.In the handler, if the current cell is a check box cell, call the CommitEdit method and pass in the Commit value.

датагридвиевимажеколумнDataGridViewImageColumn

DataGridViewImageColumn используется для вывода изображений.The DataGridViewImageColumn is used to display images. Столбцы изображений могут автоматически заполняться из источника данных, заполняться вручную для несвязанных столбцов или динамически заполняться в обработчике для события CellFormatting.Image columns can be populated automatically from a data source, populated manually for unbound columns, or populated dynamically in a handler for the CellFormatting event.

Автоматическое заполнение столбца Image из источника данных работает с массивами байтов в различных форматах изображений, включая все форматы, поддерживаемые классом Image, и формат OLE Picture, используемый в Microsoft® Access и образце базы данных Northwind.The automatic population of an image column from a data source works with byte arrays in a variety of image formats, including all formats supported by the Image class and the OLE Picture format used by Microsoft® Access and the Northwind sample database.

Заполнение столбца Image вручную полезно, если требуется предоставить функциональные возможности DataGridViewButtonColumn, но с пользовательским видом.Populating an image column manually is useful when you want to provide the functionality of a DataGridViewButtonColumn, but with a customized appearance. Можно обработать событие DataGridView.CellClick, чтобы реагировать на щелчки в ячейке изображения.You can handle the DataGridView.CellClick event to respond to clicks within an image cell.

Заполнение ячеек столбца Image в обработчике для события CellFormatting полезно, если требуется предоставить изображения для вычисляемых значений или значений в форматах, отличных от изображений.Populating the cells of an image column in a handler for the CellFormatting event is useful when you want to provide images for calculated values or values in non-image formats. Например, у вас может быть столбец "риск" со строковыми значениями, такими как "high", "middle"и "low", которые должны отображаться в виде значков.For example, you may have a "Risk" column with string values such as "high", "middle", and "low" that you want to display as icons. Кроме того, может существовать столбец "Image", содержащий расположения изображений, которые должны быть загружены, а не двоичное содержимое изображений.Alternately, you may have an "Image" column that contains the locations of images that must be loaded rather than the binary content of the images.

датагридвиевбуттонколумнDataGridViewButtonColumn

С помощью DataGridViewButtonColumnможно отобразить столбец ячеек, содержащих кнопки.With the DataGridViewButtonColumn, you can display a column of cells that contain buttons. Это полезно, если необходимо предоставить пользователям простой способ выполнения действий с конкретными записями, например, размещение заказа или отображение дочерних записей в отдельном окне.This is useful when you want to provide an easy way for your users to perform actions on particular records, such as placing an order or displaying child records in a separate window.

Столбцы кнопок не создаются автоматически при привязке данных к элементу управления DataGridView.Button columns are not generated automatically when data-binding a DataGridView control. Чтобы использовать столбцы кнопки, необходимо создать их вручную и добавить их в коллекцию, возвращенную свойством DataGridView.Columns.To use button columns, you must create them manually and add them to the collection returned by the DataGridView.Columns property.

Вы можете реагировать на нажатия пользователем в ячейках кнопки, обрабатывая событие DataGridView.CellClick.You can respond to user clicks in button cells by handling the DataGridView.CellClick event.

DataGridViewComboBoxColumnDataGridViewComboBoxColumn

С помощью DataGridViewComboBoxColumnможно отобразить столбец ячеек, содержащих раскрывающиеся списки.With the DataGridViewComboBoxColumn, you can display a column of cells that contain drop-down list boxes. Это полезно для ввода данных в полях, которые могут содержать только определенные значения, например столбец Category таблицы Products в образце базы данных Northwind.This is useful for data entry in fields that can only contain particular values, such as the Category column of the Products table in the Northwind sample database.

Раскрывающийся список, используемый для всех ячеек, можно заполнить тем же способом, что и ComboBox раскрывающийся список, вручную через коллекцию, возвращенную свойством Items, или путем привязки к источнику данных с помощью свойств DataSource, DisplayMemberи ValueMember.You can populate the drop-down list used for all cells the same way you would populate a ComboBox drop-down list, either manually through the collection returned by the Items property, or by binding it to a data source through the DataSource, DisplayMember, and ValueMember properties. Дополнительные сведения см. в разделе элемент управления ComboBox.For more information, see ComboBox Control.

Фактические значения ячеек можно привязать к источнику данных, используемому элементом управления DataGridView, установив свойство DataPropertyName System.Windows.Forms.DataGridViewComboBoxColumn.You can bind the actual cell values to the data source used by the DataGridView control by setting the DataPropertyName property of the System.Windows.Forms.DataGridViewComboBoxColumn.

Столбцы с полями со списками не создаются автоматически при привязке данных к элементу управления DataGridView.Combo box columns are not generated automatically when data-binding a DataGridView control. Чтобы использовать столбцы поля со списком, необходимо создать их вручную и добавить их в коллекцию, возвращенную свойством Columns.To use combo box columns, you must create them manually and add them to the collection returned by the Columns property.

датагридвиевлинкколумнDataGridViewLinkColumn

С помощью DataGridViewLinkColumnможно отобразить столбец ячеек, содержащих гиперссылки.With the DataGridViewLinkColumn, you can display a column of cells that contain hyperlinks. Это полезно для значений URL-адресов в источнике данных или в качестве альтернативы столбцу кнопки для специальных поведений, таких как открытие окна с дочерними записями.This is useful for URL values in the data source or as an alternative to the button column for special behaviors such as opening a window with child records.

Столбцы связей не создаются автоматически при привязке данных к элементу управления DataGridView.Link columns are not generated automatically when data-binding a DataGridView control. Чтобы использовать ссылочные столбцы, необходимо создать их вручную и добавить их в коллекцию, возвращенную свойством Columns.To use link columns, you must create them manually and add them to the collection returned by the Columns property.

Вы можете ответить на щелчки по ссылкам, обрабатывая событие CellContentClick.You can respond to user clicks on links by handling the CellContentClick event. Это событие отличается от событий CellClick и CellMouseClick, происходящих, когда пользователь щелкает в любом месте ячейки.This event is distinct from the CellClick and CellMouseClick events, which occur when a user clicks anywhere in a cell.

Класс DataGridViewLinkColumn предоставляет несколько свойств для изменения внешнего вида ссылок до, во время и после их нажатия.The DataGridViewLinkColumn class provides several properties for modifying the appearance of links before, during, and after they are clicked.

См. также разделSee also