Share via


Architettura del controllo DataGridView (Windows Form)

Aggiornamento: novembre 2007

Il controllo DataGridView e le relative classi sono progettati per costituire un sistema flessibile ed estendibile per la visualizzazione e la modifica di dati in formato tabulare. Queste classi sono contenute tutte nello spazio dei nomi System.Windows.Forms e sono contrassegnate con il prefisso "DataGridView".

Elementi dell'architettura

Le principali classi correlate DataGridView derivano da DataGridViewElement. Nel modello a oggetti riportato di seguito viene illustrata la gerarchia di ereditarietà di DataGridViewElement.

Modello a oggetti DataGridViewElement

Modello a oggetti DataGridViewElement

La classe DataGridViewElement fornisce un riferimento al controllo padre DataGridView e dispone di una proprietà State che contiene un valore che rappresenta una combinazione dei valori dell'enumerazione DataGridViewElementStates.

Nelle sezioni che seguono le classi correlate DataGridView vengono illustrate in modo dettagliato.

DataGridViewElementStates

L'enumerazione DataGridViewElementStates contiene i valori indicati di seguito.

I valori di questa enumerazione possono essere combinati con operatori logici bit per bit, per cui la proprietà State è in grado di esprimere più di uno stato alla volta. Ad esempio, la classe DataGridViewElement può essere contemporaneamente nello stato Frozen, Selected e Visible.

Celle e bande

Il controllo DataGridView comprende due tipi fondamentali di oggetti: celle e bande. Tutte le celle derivano dalla classe base DataGridViewCell. I due tipi di bande, DataGridViewColumn e DataGridViewRow, derivano entrambi dalla classe base DataGridViewBand.

Il controllo DataGridView interagisce con diverse classi, ma quelle utilizzate più di frequente sono DataGridViewCell, DataGridViewColumn e DataGridViewRow.

DataGridViewCell

La cella è l'unità di base di interazione per la classe DataGridView. La visualizzazione si basa sulle celle e l'immissione dei dati viene spesso eseguita mediante le celle. È possibile accedere alle celle utilizzando l'insieme Cells della classe DataGridViewRow e accedere alle celle selezionate utilizzando l'insieme SelectedCells del controllo DataGridView. Nel modello a oggetti riportato di seguito vengono illustrati tale utilizzo e la gerarchia di ereditarietà di DataGridViewCell.

Modello a oggetti DataGridViewCell

Modello a oggetti DataGridViewCell

Il tipo DataGridViewCell è una classe base astratta, da cui derivano tutti i tipi di cella. DataGridViewCell e i tipi derivati non sono controlli Windows Form, ma alcuni di essi contengono controlli Windows Form. Tutte le funzionalità di modifica supportate da una cella sono in genere gestite da un controllo inserito.

Gli oggetti DataGridViewCell non controllano le funzionalità relative all'aspetto e al disegno alla stessa maniera dei controlli Windows Form. Al contrario, il controllo DataGridView determina l'aspetto dei relativi oggetti DataGridViewCell. È possibile modificare in modo significativo l'aspetto e il comportamento delle celle interagendo con le proprietà e gli eventi del controllo DataGridView. Se i requisiti di personalizzazione necessari vanno oltre le capacità del controllo DataGridView, è possibile implementare una classe personalizzata derivata da DataGridViewCell o da una delle classi figlie.

Nell'elenco riportato di seguito sono riportate le classi che derivano da DataGridViewCell.

DataGridViewColumn

Lo schema dell'archivio dati collegato del controllo DataGridView è espresso nelle colonne del controllo DataGridView. È possibile accedere alle colonne del controllo DataGridView utilizzando l'insieme Columns. È possibile accedere alle colonne selezionate utilizzando l'insieme SelectedColumns. Nel modello a oggetti riportato di seguito vengono illustrati tale utilizzo e la gerarchia di ereditarietà di DataGridViewColumn.

Modello a oggetti DataGridViewColumn

Modello a oggetti DataGridViewColumn

Per alcuni dei tipi di celle principali sono presenti tipi di colonne corrispondenti, derivate dalla classe base DataGridViewColumn.

Nell'elenco riportato di seguito sono riportate le classi che derivano da DataGridViewColumn.

Controlli di modifica DataGridView

Per le celle che supportano funzionalità di modifica avanzate viene in genere utilizzato un controllo inserito derivato da un controllo Windows Form. Questi controlli implementano anche l'interfaccia IDataGridViewEditingControl. Nel modello a oggetti riportato di seguito viene illustrato l'utilizzo di questi controlli.

Modello a oggetti del controllo di modifica DataGridView

Modello a oggetti del controllo di modifica DataGridView

I controlli di modifica riportati di seguito vengono forniti con il controllo DataGridView.

Per informazioni sulla creazione di controlli di modifica personalizzati, vedere Procedura: inserire controlli in celle del controllo DataGridView di Windows Form.

Nella tabella riportata di seguito viene illustrata la relazione tra i tipi di celle, i tipi di colonne e i controlli di modifica.

Tipo di cella

Controllo inserito

Tipo di colonna

DataGridViewButtonCell

n/d

DataGridViewButtonColumn

DataGridViewCheckBoxCell

n/d

DataGridViewCheckBoxColumn

DataGridViewComboBoxCell

DataGridViewComboBoxEditingControl

DataGridViewComboBoxColumn

DataGridViewImageCell

n/d

DataGridViewImageColumn

DataGridViewLinkCell

n/d

DataGridViewLinkColumn

DataGridViewTextBoxCell

DataGridViewTextBoxEditingControl

DataGridViewTextBoxColumn

DataGridViewRow

La classe DataGridViewRow consente la visualizzazione di campi di dati di un record dell'archivio dati a cui il controllo DataGridView è collegato. È possibile accedere alle righe del controllo DataGridView utilizzando l'insieme Rows. È possibile accedere alle righe selezionate utilizzando l'insieme SelectedRows. Nel modello a oggetti riportato di seguito vengono illustrati tale utilizzo e la gerarchia di ereditarietà di DataGridViewRow.

Modello a oggetti DataGridViewRow

Modello a oggetti DataGridViewRow

È possibile derivare tipi personalizzati dalla classe DataGridViewRow, anche se in genere non è necessario. Il controllo DataGridView dispone di diversi eventi relativi alle righe e di proprietà per la personalizzazione del comportamento degli oggetti DataGridViewRow.

Se si attiva la proprietà AllowUserToAddRows del controllo DataGridView, come ultima riga verrà visualizzata una riga speciale per l'aggiunta di nuove righe. Questa riga fa parte dell'insieme Rows, ma dispone di funzionalità speciali per le quali potrebbe essere necessaria particolare attenzione. Per ulteriori informazioni, vedere Utilizzo della riga per i nuovi record del controllo DataGridView di Windows Form.

Vedere anche

Concetti

Utilizzo della riga per i nuovi record del controllo DataGridView di Windows Form

Riferimenti

Cenni preliminari sul controllo DataGridView (Windows Form)

Altre risorse

Personalizzazione del controllo DataGridView Windows Form