Architettura del controllo DataGridView (Windows Form)

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

Elementi dell'architettura

Le classi complementari primarie DataGridView derivano da DataGridViewElement. Il modello a oggetti seguente illustra la gerarchia di DataGridViewElement ereditarietà.

Diagram that shows the DataGridViewElement Object Model hierarchy.

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

Le sezioni seguenti descrivono le DataGridView classi complementari in modo più dettagliato.

Datagridviewelementstates

L'enumerazione DataGridViewElementStates contiene i valori seguenti:

I valori di questa enumerazione possono essere combinati con gli operatori logici bit per bit, in modo che la State proprietà possa esprimere più di uno stato contemporaneamente. Ad esempio, un DataGridViewElement oggetto può essere simultaneamente Frozen, Selectede Visible.

Celle e bande

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

Il DataGridView controllo interagisce con diverse classi, ma il più comunemente rilevato è DataGridViewCell, DataGridViewColumne DataGridViewRow.

DataGridViewCell

La cella è l'unità fondamentale di interazione per .DataGridView La visualizzazione è allineata al centro sulle celle e l'immissione dei dati viene spesso eseguita tramite celle. È possibile accedere alle celle usando la Cells raccolta della DataGridViewRow classe ed è possibile accedere alle celle selezionate usando la SelectedCells raccolta del DataGridView controllo . Il modello a oggetti seguente illustra questo utilizzo e mostra la gerarchia di DataGridViewCell ereditarietà.

Diagram that shows the DataGridViewCell Object Model hierarchy.

Il DataGridViewCell tipo è una classe base astratta, da cui derivano tutti i tipi di cella. DataGridViewCelle i relativi tipi derivati non sono Windows Form controlli, ma alcuni controlli host Windows Form. Qualsiasi funzionalità di modifica supportata da una cella viene in genere gestita da un controllo ospitato.

DataGridViewCellgli oggetti non controllano l'aspetto e le caratteristiche di disegno nello stesso modo dei controlli Windows Form. L'oggetto DataGridView è invece responsabile dell'aspetto dei relativi DataGridViewCell oggetti. È possibile influire in modo significativo sull'aspetto e sul comportamento delle celle interagendo con DataGridView le proprietà e gli eventi del controllo. Quando si hanno requisiti speciali per le personalizzazioni che superano le funzionalità del DataGridView controllo, è possibile implementare una classe personalizzata che deriva da o una DataGridViewCell delle relative classi figlio.

L'elenco seguente mostra le classi derivate da DataGridViewCell:

Datagridviewcolumn

Lo schema dell'archivio DataGridView dati collegato del controllo è espresso nelle DataGridView colonne del controllo. È possibile accedere alle DataGridView colonne del controllo usando la Columns raccolta . È possibile accedere alle colonne selezionate usando la SelectedColumns raccolta . Il modello a oggetti seguente illustra questo utilizzo e mostra la gerarchia di DataGridViewColumn ereditarietà.

Diagram that shows the DataGridViewColumn Object Model hierarchy.

Alcuni tipi di cella chiave hanno tipi di colonna corrispondenti. Questi sono derivati dalla DataGridViewColumn classe base.

L'elenco seguente mostra le classi derivate da DataGridViewColumn:

Controlli di modifica di DataGridView

Le celle che supportano la funzionalità di modifica avanzata usano in genere un controllo ospitato derivato da un controllo Windows Form. Questi controlli implementano anche l'interfaccia IDataGridViewEditingControl . Il modello a oggetti seguente illustra l'utilizzo di questi controlli.

Diagram showing the DataGridView Editing Control Object Model hierarchy.

I controlli di modifica seguenti vengono forniti con il DataGridView controllo :

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

Nella tabella seguente viene illustrata la relazione tra tipi di cella, tipi di colonna e controlli di modifica.

Tipo di cella Controllo ospitato 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 DataGridViewRow classe visualizza i campi dati di un record dall'archivio dati a cui è associato il DataGridView controllo. È possibile accedere alle DataGridView righe del controllo usando la Rows raccolta . È possibile accedere alle righe selezionate usando la SelectedRows raccolta . Il modello a oggetti seguente illustra questo utilizzo e mostra la gerarchia di DataGridViewRow ereditarietà.

Diagram that shows the DataGridViewRow Object Model hierarchy.

È possibile derivare tipi personalizzati dalla DataGridViewRow classe , anche se questo in genere non sarà necessario. Il DataGridView controllo dispone di diversi eventi e proprietà correlati alle righe per personalizzare il comportamento dei relativi DataGridViewRow oggetti.

Se si abilita la DataGridView proprietà del AllowUserToAddRows controllo, viene visualizzata una riga speciale per l'aggiunta di nuove righe come ultima riga. Questa riga fa parte della Rows raccolta, ma dispone di funzionalità speciali che potrebbero richiedere attenzione. Per altre informazioni, vedere Uso della riga per i nuovi record nel controllo DataGridView Windows Form.

Vedi anche