Tipi di colonna nel controllo DataGridView di Windows Form

Il DataGridView controllo usa diversi tipi di colonna per visualizzarne le informazioni e consentire agli utenti di modificare o aggiungere informazioni.

Quando si associa un DataGridView controllo e si imposta la proprietà su true, le AutoGenerateColumns colonne vengono generate automaticamente usando i tipi di colonna predefiniti appropriati per i tipi di dati contenuti nell'origine dati associata.

È anche possibile creare istanze di una delle classi di colonna manualmente e aggiungerle alla raccolta restituita dalla Columns proprietà . È possibile creare queste istanze da usare come colonne non associate oppure associarle manualmente. Le colonne associate manualmente sono utili, ad esempio, quando si desidera sostituire una colonna generata automaticamente di un tipo con una colonna di un altro tipo.

Nella tabella seguente vengono descritte le varie classi di colonne disponibili per l'uso nel DataGridView controllo .

Classe Descrizione
DataGridViewTextBoxColumn Usato con valori basati su testo. Generato automaticamente quando si esegue l'associazione a numeri e stringhe.
DataGridViewCheckBoxColumn Usato con Boolean i valori e CheckState . Generato automaticamente quando si esegue l'associazione ai valori di questi tipi.
DataGridViewImageColumn Usato per visualizzare le immagini. Generato automaticamente quando si esegue l'associazione a matrici di byte, Image oggetti o Icon oggetti.
DataGridViewButtonColumn Consente di visualizzare i pulsanti nelle celle. Non generato automaticamente durante l'associazione. In genere usato come colonne non associate.
DataGridViewComboBoxColumn Consente di visualizzare elenchi a discesa nelle celle. Non generato automaticamente durante l'associazione. In genere i dati sono associati manualmente.
DataGridViewLinkColumn Consente di visualizzare i collegamenti nelle celle. Non generato automaticamente durante l'associazione. In genere i dati sono associati manualmente.
Tipo di colonna personalizzato È possibile creare una classe di colonna personalizzata ereditando la DataGridViewColumn classe o una delle relative classi derivate per fornire un aspetto, un comportamento o controlli ospitati personalizzati. Per altre informazioni, vedere Procedura: Personalizzare celle e colonne nel controllo DataGridView Windows Form estendendone il comportamento e l'aspetto

Questi tipi di colonna sono descritti in modo più dettagliato nelle sezioni seguenti.

Datagridviewtextboxcolumn

DataGridViewTextBoxColumn è un tipo di colonna per utilizzo generico da usare con valori basati su testo, ad esempio numeri e stringhe. In modalità di modifica, un TextBox controllo viene visualizzato nella cella attiva, consentendo agli utenti di modificare il valore della cella.

I valori delle celle vengono convertiti automaticamente in stringhe per la visualizzazione. I valori immessi o modificati dall'utente vengono analizzati automaticamente per creare un valore di cella del tipo di dati appropriato. È possibile personalizzare queste conversioni gestendo gli CellFormatting eventi e CellParsing del DataGridView controllo .

Il tipo di dati del valore della cella di una colonna viene specificato nella ValueType proprietà della colonna.

Datagridviewcheckboxcolumn

L'oggetto DataGridViewCheckBoxColumn viene utilizzato con Boolean i valori e CheckState . Boolean i valori vengono visualizzati come caselle di controllo a due stati o a tre stati, a seconda del valore della ThreeState proprietà. Quando la colonna è associata ai CheckState valori, il valore della ThreeState proprietà è true per impostazione predefinita.

In genere, i valori delle celle della casella di controllo sono destinati all'archiviazione, come qualsiasi altro dato o per l'esecuzione di operazioni bulk. Se si desidera rispondere immediatamente quando gli utenti fa clic su una cella della casella di controllo, è possibile gestire l'evento, ma questo evento si verifica prima dell'aggiornamento CellClick del valore della cella. Se è necessario il nuovo valore al momento del clic, un'opzione consiste nel calcolare il valore previsto in base al valore corrente. Un altro approccio consiste nel eseguire immediatamente il commit della modifica e gestire l'evento CellValueChanged per rispondere. Per eseguire il commit della modifica quando si fa clic sulla cella, è necessario gestire l'evento CurrentCellDirtyStateChanged . Nel gestore, se la cella corrente è una cella della casella di controllo, chiamare il CommitEdit metodo e passare il Commit valore.

DataGridViewImageColumn

Viene DataGridViewImageColumn usato per visualizzare le immagini. Le colonne image possono essere popolate automaticamente da un'origine dati, popolate manualmente per le colonne non associate o popolate dinamicamente in un gestore per l'evento CellFormatting .

Il popolamento automatico di una colonna immagine da un'origine dati funziona con matrici di byte in un'ampia gamma di formati di immagine, inclusi tutti i formati supportati dalla Image classe e dal formato OLE Picture usato da Microsoft® Access e dal database di esempio Northwind.

Il popolamento manuale di una colonna immagine è utile quando si desidera fornire la funzionalità di un DataGridViewButtonColumnoggetto , ma con un aspetto personalizzato. È possibile gestire l'evento DataGridView.CellClick per rispondere ai clic all'interno di una cella dell'immagine.

Popolare le celle di una colonna immagine in un gestore per l'evento CellFormatting è utile quando si desidera fornire immagini per valori calcolati o valori in formati non immagine. Ad esempio, è possibile avere una colonna "Rischio" con valori stringa come "high", "middle"e "low" che si desidera visualizzare come icone. In alternativa, è possibile avere una colonna "Image" che contiene le posizioni delle immagini che devono essere caricate anziché il contenuto binario delle immagini.

Datagridviewbuttoncolumn

DataGridViewButtonColumnCon , è possibile visualizzare una colonna di celle che contengono pulsanti. Ciò è utile quando si vuole offrire agli utenti un modo semplice per eseguire azioni su record specifici, ad esempio l'inserimento di un ordine o la visualizzazione di record figlio in una finestra separata.

Le colonne pulsante non vengono generate automaticamente quando si associa un DataGridView controllo. Per usare le colonne pulsante, è necessario crearle manualmente e aggiungerle alla raccolta restituita dalla DataGridView.Columns proprietà .

È possibile rispondere ai clic degli utenti nelle celle del pulsante gestendo l'evento DataGridView.CellClick .

DataGridViewComboBoxColumn

DataGridViewComboBoxColumnCon è possibile visualizzare una colonna di celle che contengono caselle di riepilogo a discesa. Ciò è utile per l'immissione di dati nei campi che possono contenere solo valori specifici, ad esempio la colonna Category della tabella Products nel database di esempio Northwind.

È possibile popolare l'elenco a discesa usato per tutte le celle nello stesso modo in cui si popola un ComboBox elenco a discesa, manualmente tramite la raccolta restituita dalla Items proprietà oppure associandolo a un'origine dati tramite le DataSourceproprietà , DisplayMembere ValueMember . Per altre informazioni, vedere Controllo ComboBox.

È possibile associare i valori di cella effettivi all'origine dati utilizzata dal DataGridView controllo impostando la DataPropertyName proprietà dell'oggetto System.Windows.Forms.DataGridViewComboBoxColumn.

Le colonne casella combinata non vengono generate automaticamente quando si associa un DataGridView controllo. Per usare le colonne della casella combinata, è necessario crearle manualmente e aggiungerle alla raccolta restituita dalla Columns proprietà .

DataGridViewLinkColumn

DataGridViewLinkColumnCon è possibile visualizzare una colonna di celle che contengono collegamenti ipertestuali. Ciò è utile per i valori URL nell'origine dati o come alternativa alla colonna pulsante per comportamenti speciali, ad esempio l'apertura di una finestra con record figlio.

Le colonne di collegamento non vengono generate automaticamente quando si associa un DataGridView controllo. Per usare le colonne di collegamento, è necessario crearle manualmente e aggiungerle alla raccolta restituita dalla Columns proprietà .

È possibile rispondere ai clic degli utenti sui collegamenti gestendo l'evento CellContentClick . Questo evento è diverso dagli CellClick eventi e CellMouseClick che si verificano quando un utente fa clic in un punto qualsiasi di una cella.

La DataGridViewLinkColumn classe fornisce diverse proprietà per modificare l'aspetto dei collegamenti prima, durante e dopo aver fatto clic.

Vedi anche