Condividi tramite


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à.

Diagramma che mostra la gerarchia del modello a oggetti DataGridViewElement.

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, DataGridViewColumn e DataGridViewRow, derivano entrambi dalla classe base DataGridViewBand.

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

DataGridViewCell

La cella è l'unità fondamentale di interazione per il DataGridView. La visualizzazione è centrata sulle celle e l'immissione dei dati viene spesso effettuata attraverso di esse. È 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 ereditarietà di DataGridViewCell.

Diagramma che mostra la gerarchia del modello a oggetti DataGridViewCell.

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

DataGridViewCell gli oggetti non controllano le proprie caratteristiche di aspetto e 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 propria classe che deriva da DataGridViewCell o una delle sue classi figlio.

L'elenco seguente mostra le classi derivate da DataGridViewCell:

DataGridViewColumn

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

Diagramma che mostra la gerarchia del modello a oggetti DataGridViewColumn.

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.

Diagramma che mostra la gerarchia del modello a oggetti del controllo di modifica di DataGridView.

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

Per informazioni sulla creazione di controlli di modifica personalizzati, consultare la pagina Procedura: Ospitare controlli nelle celle DataGridView di Windows Form.

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 non disponibile DataGridViewButtonColumn
DataGridViewCheckBoxCell non disponibile DataGridViewCheckBoxColumn
DataGridViewComboBoxCell DataGridViewComboBoxEditingControl DataGridViewComboBoxColumn
DataGridViewImageCell non disponibile DataGridViewImageColumn
DataGridViewLinkCell non disponibile DataGridViewLinkColumn
DataGridViewTextBoxCell DataGridViewTextBoxEditingControl DataGridViewTextBoxColumn

DataGridViewRow

La DataGridViewRow classe visualizza i campi dati di un record dall'archivio dati a cui è associato il DataGridView controllo. Puoi accedere alle DataGridView righe del controllo usando la Rows raccolta. È possibile usare la raccolta SelectedRows per accedere alle righe selezionate. Il modello a oggetti seguente illustra questo utilizzo e mostra la gerarchia di ereditarietà di DataGridViewRow.

Diagramma che mostra la gerarchia del modello a oggetti DataGridViewRow.

È 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 di Windows Form.

Vedere anche