Tipi di colonna nel controllo DataGridView di Windows FormColumn Types in the Windows Forms DataGridView Control

Il DataGridView controllo utilizza diversi tipi di colonna per visualizzare le informazioni e consentire agli utenti di modificare o aggiungere informazioni.The DataGridView control uses several column types to display its information and enable users to modify or add information.

Quando si associa un DataGridView controllo e impostare il AutoGenerateColumns proprietà true, colonne vengono generate automaticamente in base ai tipi di colonna predefinito appropriati per i tipi di dati contenuti nell'origine dati associata.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.

È anche possibile creare manualmente le istanze di una qualsiasi delle classi di colonna e aggiungerli alla raccolta restituita dal Columns proprietà.You can also create instances of any of the column classes yourself and add them to the collection returned by the Columns property. È possibile creare queste istanze da utilizzare come colonne non associate oppure è possibile associarli manualmente.You can create these instances for use as unbound columns, or you can manually bind them. Le colonne associate manualmente sono utili, ad esempio, quando si desidera sostituire una colonna di un tipo generata automaticamente con una colonna di un altro tipo.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.

La tabella seguente descrive le varie classi di colonna disponibili da utilizzare per il DataGridView controllo.The following table describes the various column classes available for use in the DataGridView control.

ClasseClass DescrizioneDescription
DataGridViewTextBoxColumn Utilizzato con i valori basati su testo.Used with text-based values. Generato automaticamente quando si associa a numeri e stringhe.Generated automatically when binding to numbers and strings.
DataGridViewCheckBoxColumn Utilizzato con Boolean e CheckState valori.Used with Boolean and CheckState values. Generato automaticamente durante l'associazione a valori di questi tipi.Generated automatically when binding to values of these types.
DataGridViewImageColumn Consente di visualizzare immagini.Used to display images. Generato automaticamente durante l'associazione a matrici di byte, Image , oggetti o Icon oggetti.Generated automatically when binding to byte arrays, Image objects, or Icon objects.
DataGridViewButtonColumn Consente di visualizzare i pulsanti in celle.Used to display buttons in cells. Non generata automaticamente durante l'associazione.Not automatically generated when binding. In genere utilizzate come colonne non associate.Typically used as unbound columns.
DataGridViewComboBoxColumn Consente di visualizzare gli elenchi a discesa nelle celle.Used to display drop-down lists in cells. Non generata automaticamente durante l'associazione.Not automatically generated when binding. In genere associati a dati manualmente.Typically data-bound manually.
DataGridViewLinkColumn Consente di visualizzare i collegamenti nelle celle.Used to display links in cells. Non generata automaticamente durante l'associazione.Not automatically generated when binding. In genere associati a dati manualmente.Typically data-bound manually.
Tipo di colonna personalizzatoYour custom column type È possibile creare la propria classe di colonna tramite l'eredità di DataGridViewColumn classe o una qualsiasi delle classi derivate per fornire un aspetto personalizzato, il comportamento o controlli ospitati.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. Per altre informazioni, vedere procedura: personalizzare celle e colonne nel controllo DataGridView Windows Form dall'estensione di comportamento Their e l'aspettoFor more information, see How to: Customize Cells and Columns in the Windows Forms DataGridView Control by Extending Their Behavior and Appearance

Questi tipi di colonna sono descritti più dettagliatamente nelle sezioni seguenti.These column types are described in more detail in the following sections.

DataGridViewTextBoxColumnDataGridViewTextBoxColumn

Il DataGridViewTextBoxColumn è un tipo di colonna generica per l'utilizzo con i valori basati su testo, ad esempio stringhe e numeri.The DataGridViewTextBoxColumn is a general-purpose column type for use with text-based values such as numbers and strings. In modalità di modifica, un TextBox controllo viene visualizzato nella cella attiva, consentendo agli utenti di modificare il valore della cella.In editing mode, a TextBox control is displayed in the active cell, enabling users to modify the cell value.

I valori delle celle vengono automaticamente convertiti in stringhe per la visualizzazione.Cell values are automatically converted to strings for display. I valori immessi o modificati dall'utente vengono analizzati automaticamente per creare un valore di cella del tipo di dati appropriato.Values entered or modified by the user are automatically parsed to create a cell value of the appropriate data type. È possibile personalizzare queste conversioni gestendo il CellFormatting e CellParsing gli eventi del DataGridView controllo.You can customize these conversions by handling the CellFormatting and CellParsing events of the DataGridView control.

Il tipo di dati di valore di cella di una colonna è incluso il ValueType proprietà della colonna.The cell value data type of a column is specified in the ValueType property of the column.

DataGridViewCheckBoxColumnDataGridViewCheckBoxColumn

Il DataGridViewCheckBoxColumn viene utilizzato con Boolean e CheckState valori.The DataGridViewCheckBoxColumn is used with Boolean and CheckState values. Boolean i valori vengono visualizzati come caselle di controllo a due o tre stati in base al valore di ThreeState proprietà.Boolean values display as two-state or three-state check boxes, depending on the value of the ThreeState property. Quando la colonna è associata a CheckState valori, il ThreeState valore della proprietà è true per impostazione predefinita.When the column is bound to CheckState values, the ThreeState property value is true by default.

In genere, i valori di cella di casella di controllo vengono utilizzati per l'archiviazione, come gli altri dati, o per l'esecuzione di operazioni bulk.Typically, check box cell values are intended either for storage, like any other data, or for performing bulk operations. Se si desidera rispondere immediatamente quando gli utenti di fare clic su una cella di casella di controllo, è possibile gestire il CellClick evento, ma questo evento si verifica prima che il valore della cella viene aggiornato.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. Se è necessario il nuovo valore al momento della selezione, è possibile calcolare il valore previsto in base al valore corrente.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. Un altro approccio consiste nell'eseguire immediatamente il commit della modifica e gestire il CellValueChanged eventi per rispondere a esso.Another approach is to commit the change immediately, and handle the CellValueChanged event to respond to it. Per eseguire il commit della modifica quando la cella è selezionata, è necessario gestire il CurrentCellDirtyStateChanged evento.To commit the change when the cell is clicked, you must handle the CurrentCellDirtyStateChanged event. Nel gestore, se la cella corrente contiene una casella di controllo, chiamare il CommitEdit (metodo) e passare il Commit valore.In the handler, if the current cell is a check box cell, call the CommitEdit method and pass in the Commit value.

DataGridViewImageColumnDataGridViewImageColumn

Il DataGridViewImageColumn consente di visualizzare immagini.The DataGridViewImageColumn is used to display images. Colonne di tipo image possono essere popolate automaticamente da un'origine dati, popolate manualmente per le colonne non associate o dinamicamente in un gestore per il CellFormatting evento.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.

La compilazione automatica di una colonna di immagini da un'origine dati funziona con le matrici di byte in una vasta gamma di formati di immagine, inclusi tutti i formati supportati dalla Image classe e il formato di immagine OLE utilizzato da Microsoft® Access e database di esempio 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.

La compilazione di una colonna di tipo image manuale è utile quando si desidera fornire la funzionalità di un DataGridViewButtonColumn, ma con un aspetto personalizzato.Populating an image column manually is useful when you want to provide the functionality of a DataGridViewButtonColumn, but with a customized appearance. È possibile gestire il DataGridView.CellClick evento per rispondere alle selezioni nella cella di un'immagine.You can handle the DataGridView.CellClick event to respond to clicks within an image cell.

La compilazione delle celle di una colonna di immagine in un gestore per il CellFormatting evento è utile quando si desidera fornire immagini per i valori calcolati o i valori in formati non di immagine.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. Ad esempio, è possibile una colonna "A rischio" con valori di stringa, ad esempio "high", "middle", e "low" che si desidera visualizzare come icone.For example, you may have a "Risk" column with string values such as "high", "middle", and "low" that you want to display as icons. In alternativa, potrebbe essere una colonna di "Image" che contiene i percorsi delle immagini che devono essere caricati anziché il contenuto binario delle immagini.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.

DataGridViewButtonColumnDataGridViewButtonColumn

Con il DataGridViewButtonColumn, è possibile visualizzare una colonna di celle che contengono pulsanti.With the DataGridViewButtonColumn, you can display a column of cells that contain buttons. Ciò è utile quando si desidera fornire un modo semplice per gli utenti di eseguire azioni su un record specifico, ad esempio un ordine di inserimento o la visualizzazione di record figlio in una finestra separata.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.

Colonne di pulsanti non vengono generate automaticamente quando l'associazione a dati un DataGridView controllo.Button columns are not generated automatically when data-binding a DataGridView control. Per utilizzare le colonne di pulsanti, è necessario crearle manualmente e aggiungerli alla raccolta restituita dal DataGridView.Columns proprietà.To use button columns, you must create them manually and add them to the collection returned by the DataGridView.Columns property.

È possibile rispondere alle selezioni nelle celle a pulsante gestendo il DataGridView.CellClick evento.You can respond to user clicks in button cells by handling the DataGridView.CellClick event.

DataGridViewComboBoxColumnDataGridViewComboBoxColumn

Con il DataGridViewComboBoxColumn, è possibile visualizzare una colonna di celle che contengono le caselle di riepilogo a discesa.With the DataGridViewComboBoxColumn, you can display a column of cells that contain drop-down list boxes. Ciò è utile per l'immissione di dati nei campi che possono contenere solo valori particolari, ad esempio la colonna Category della tabella Products nel database di esempio 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.

È possibile popolare l'elenco di riepilogo a discesa usato per tutte le celle nello stesso modo è necessario popolare un ComboBox elenco a discesa, sia manualmente tramite la raccolta restituita dal Items , proprietà o mediante l'associazione a un'origine dati tramite il DataSource, DisplayMember, e ValueMember proprietà.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. Per ulteriori informazioni, vedere controllo ComboBox.For more information, see ComboBox Control.

È possibile associare i valori di cella effettivo per l'origine dati utilizzata dal DataGridView controllo impostando il DataPropertyName proprietà del 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.

Colonne di caselle combinate non vengono generate automaticamente quando l'associazione a dati un DataGridView controllo.Combo box columns are not generated automatically when data-binding a DataGridView control. Per utilizzare le colonne di casella combinata, è necessario crearle manualmente e aggiungerli alla raccolta restituita dal Columns proprietà.To use combo box columns, you must create them manually and add them to the collection returned by the Columns property.

DataGridViewLinkColumnDataGridViewLinkColumn

Con il DataGridViewLinkColumn, è possibile visualizzare una colonna di celle che contengono collegamenti ipertestuali.With the DataGridViewLinkColumn, you can display a column of cells that contain hyperlinks. Ciò è utile per i valori di URL nell'origine dati o un'alternativa alla colonna di pulsanti per i comportamenti speciali, ad esempio aprendo una finestra con record figlio.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.

Le colonne di collegamenti non vengono generate automaticamente quando l'associazione a dati un DataGridView controllo.Link columns are not generated automatically when data-binding a DataGridView control. Per utilizzare le colonne di collegamento, è necessario crearle manualmente e aggiungerli alla raccolta restituita dal Columns proprietà.To use link columns, you must create them manually and add them to the collection returned by the Columns property.

È possibile rispondere alle selezioni dei collegamenti mediante la gestione di CellContentClick evento.You can respond to user clicks on links by handling the CellContentClick event. Questo evento è diverso da quello di CellClick e CellMouseClick che si verificano quando un utente fa clic in un punto qualsiasi in una cella.This event is distinct from the CellClick and CellMouseClick events, which occur when a user clicks anywhere in a cell.

La DataGridViewLinkColumn classe fornisce diverse proprietà per la modifica dell'aspetto di collegamenti prima, durante e dopo che è stato fatto clic su essi.The DataGridViewLinkColumn class provides several properties for modifying the appearance of links before, during, and after they are clicked.

Vedere ancheSee Also

DataGridView
DataGridViewColumn
DataGridViewButtonColumn
DataGridViewCheckBoxColumn
DataGridViewComboBoxColumn
DataGridViewImageColumn
DataGridViewTextBoxColumn
DataGridViewLinkColumn
Controllo DataGridViewDataGridView Control
Procedura: visualizzare immagini in celle del controllo DataGridView di Windows FormHow to: Display Images in Cells of the Windows Forms DataGridView Control
Procedura: Usare le colonne di immagini nel controllo DataGridView di Windows FormHow to: Work with Image Columns in the Windows Forms DataGridView Control
Personalizzazione del controllo DataGridView di Windows FormCustomizing the Windows Forms DataGridView Control