Tipi di colonna nel controllo DataGridView di Windows Form

Aggiornamento: novembre 2007

Il controllo DataGridView utilizza diversi tipi di colonna per visualizzare le informazioni e consentire la modifica o l'aggiunta di informazioni.

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

È inoltre possibile creare istanze di qualsiasi classe di colonne e aggiungerle all'insieme restituito dalla proprietà Columns. È possibile creare queste istanze per utilizzarle come colonne non associate oppure è possibile 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 nel controllo DataGridView.

Classe

Descrizione

DataGridViewTextBoxColumn

Utilizzata con valori basati su testo. Generata automaticamente quando si esegue l'associazione a numeri e stringhe.

DataGridViewCheckBoxColumn

Utilizzata con i valori Boolean e CheckState. Generata automaticamente quando si esegue l'associazione a valori di questi tipi.

DataGridViewImageColumn

Utilizzata per visualizzare le immagini. Generata automaticamente quando si esegue l'associazione a matrici di byte, oggetti Image oppure oggetti Icon.

DataGridViewButtonColumn

Utilizzata per visualizzare i pulsanti nelle celle. Generata non automaticamente quando si esegue l'associazione. Usata normalmente come colonna non associata.

DataGridViewComboBoxColumn

Utilizzata per visualizzare elenchi a discesa nelle celle. Generata non automaticamente quando si esegue l'associazione. Solitamente associata ai dati manualmente.

DataGridViewLinkColumn

Utilizzata per visualizzare i collegamenti nelle celle. Generata non automaticamente quando si esegue l'associazione. Solitamente associata ai dati manualmente.

Tipo di colonna personalizzato

È possibile creare una classe di colonne personalizzate mediante l'eredità della classe DataGridViewColumn o di qualsiasi classe da essa derivata per personalizzare l'aspetto, il comportamento o i controlli contenuti. Per ulteriori informazioni, vedere Procedura: personalizzare celle e colonne nel controllo DataGridView di Windows Form estendendone il comportamento e l'aspetto

Questi tipi di colonna sono descritti nei dettagli nelle sezioni seguenti.

DataGridViewTextBoxColumn

DataGridViewTextBoxColumn è un tipo di colonna generica da utilizzare con i valori basati su testo quali numeri e stringhe. Nella modalità di modifica, nella cella attiva, è visualizzato un controllo TextBox che consente 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 automaticamente analizzati per creare un valore della cella del tipo di dati appropriato. È possibile personalizzare queste conversioni mediante la gestione degli eventi CellFormatting e CellParsing del controllo DataGridView.

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

DataGridViewCheckBoxColumn

La classe DataGridViewCheckBoxColumn viene utilizzata con i valori Boolean e CheckState. I valori Boolean vengono visualizzati sotto forma di caselle di controllo a due o tre stati a seconda del valore della proprietà ThreeState. Quando la colonna è associata ai valori CheckState, il valore della proprietà ThreeState è true per impostazione predefinita.

Normalmente i valori delle celle delle caselle di controllo vengono utilizzati per l'archiviazione, come gli altri dati, o per l'esecuzione di operazioni di massa. Se si desidera rispondere immediatamente quando gli utenti fanno clic sulla cella di una casella di controllo, è possibile gestire l'evento CellClick. Tuttavia questo evento si verifica prima dell'aggiornamento del valore della cella. Se il nuovo valore è necessario al momento della selezione, è possibile calcolare il valore previsto in base al valore corrente. In alternativa è possibile applicare la modifica immediatamente e gestire l'evento CellValueChanged per rispondere alla modifica. Per applicare la modifica al momento della selezione della cella, è necessario gestire l'evento CurrentCellDirtyStateChanged. Nel gestore, se la cella corrente è una cella di casella di testo, richiamare il metodo CommitEdit e passare al valore Commit.

DataGridViewImageColumn

La classe DataGridViewImageColumn consente di visualizzare le immagini. Le colonne di immagini possono essere compilate automaticamente da un'origine dati, manualmente per le colonne non associate o dinamicamente in un gestore per l'evento CellFormatting.

La compilazione automatica di una colonna di immagini da un'origine dati funziona con matrici di byte in una varietà di formati di immagine, compresi tutti i formati supportati dalla classe Image e il formato OLE Picture utilizzato da Microsoft® Access e dal database di esempio Northwind.

La compilazione manuale di una colonna di immagini è utile quando si desidera fornire la funzionalità di una classe DataGridViewButtonColumn, ma con un aspetto personalizzato. È possibile gestire l'evento DataGridView.CellClick per rispondere alle selezioni nella cella di un'immagine.

La compilazione delle celle di una colonna di immagini in un gestore per l'evento CellFormatting è utile quando si desidera fornire immagini per i valori calcolati o i valori nei formati non di immagine. Ad esempio, è possibile disporre di una colonna "Rischio" con valori stringa quali "high", "middle" e "low" che si desidera visualizzare come icone. In alternativa è possibile disporre di una colonna"Immagine" che contiene i percorsi delle immagini che devono essere caricate invece del contenuto binario delle immagini.

DataGridViewButtonColumn

La classe DataGridViewButtonColumn consente di visualizzare una colonna di celle contenenti pulsanti. Ciò è utile quando si desidera consentire agli utenti di eseguire facilmente operazioni con record particolari, ad esempio l'effettuazione di un ordine o la visualizzazione di record figlio in una finestra separata.

Le colonne di pulsanti non vengono generate automaticamente quando si esegue l'associazione ai dati di un controlloDataGridView. Per utilizzare le colonne di pulsanti, è necessario crearle manualmente e aggiungerle all'insieme restituito dalla proprietà DataGridView.Columns.

È possibile rispondere alle selezioni nelle celle di pulsanti mediante la gestione dell'evento DataGridView.CellClick.

DataGridViewComboBoxColumn

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

È possibile compilare l'elenco a discesa utilizzato per tutte le celle allo stesso modo in cui si compilerebbe un elenco a discesa ComboBox: manualmente tramite l'insieme restituito dalla proprietà Items o mediante l'associazione a un'origine dati tramite le proprietà DataSource, DisplayMember e ValueMember. Per ulteriori informazioni, vedere Controllo ComboBox (Windows Form).

È possibile associare i valori effettivi delle celle all'origine dati utilizzata dal controllo DataGridView mediante l'impostazione della proprietà DataPropertyName della classe System.Windows.Forms.DataGridViewComboBoxColumn.

Le colonne di caselle combinate non vengono generate automaticamente quando si esegue l'associazione ai dati di un controlloDataGridView. Per utilizzare le colonne di caselle combinate, è necessario crearle manualmente e aggiungerle all'insieme restituito dalla proprietà Columns.

DataGridViewLinkColumn

La classe DataGridViewLinkColumn consente di visualizzare una colonna di celle contenenti collegamenti ipertestuali. Ciò è utile per i valori URL nell'origine dati o come alternativa alla colonna di pulsanti per i comportamenti speciali quali l'apertura di una finestra con record figlio.

Le colonne di collegamenti non vengono generate automaticamente quando si esegue l'associazione ai dati di un controlloDataGridView. Per utilizzare le colonne di collegamenti, è necessario crearle manualmente e aggiungerle all'insieme restituito dalla proprietà Columns.

È possibile rispondere alle selezioni dei collegamenti mediante la gestione dell'evento CellContentClick. Questo evento è diverso dagli eventi CellClick e CellMouseClick, che si verificano quando un utente fa clic in un punto qualsiasi di una cella.

La classe DataGridViewLinkColumn fornisce diverse proprietà per la modifica dell'aspetto dei collegamenti prima, durante e dopo la selezione.

Vedere anche

Attività

Procedura: visualizzare immagini in celle del controllo DataGridView di Windows Form

Procedura: utilizzare le colonne di immagini nel controllo DataGridView di Windows Form

Riferimenti

DataGridView

DataGridViewColumn

DataGridViewButtonColumn

DataGridViewCheckBoxColumn

DataGridViewComboBoxColumn

DataGridViewImageColumn

DataGridViewTextBoxColumn

DataGridViewLinkColumn

Altre risorse

Controllo DataGridView (Windows Form)

Personalizzazione del controllo DataGridView Windows Form