DataGridView — Architektura formantu (Formularze systemu Windows)

Kontrolka DataGridView i powiązane z nią klasy są zaprojektowane tak, aby były elastycznym, rozszerzalnym systemem do wyświetlania i edytowania danych tabelarycznych. Wszystkie te klasy są zawarte w System.Windows.Forms przestrzeni nazw, a wszystkie mają nazwę z prefiksem "DataGridView".

Elementy architektury

Podstawowe DataGridView klasy towarzyszące pochodzą z klasy DataGridViewElement. Poniższy model obiektów ilustruje hierarchię DataGridViewElement dziedziczenia.

Diagram that shows the DataGridViewElement Object Model hierarchy.

Klasa DataGridViewElement zawiera odwołanie do kontrolki nadrzędnej DataGridView i ma State właściwość, która zawiera wartość reprezentującą kombinację wartości z DataGridViewElementStates wyliczenia.

W poniższych sekcjach opisano DataGridView bardziej szczegółowo klasy towarzyszące.

Datagridviewelementstates

Wyliczenie DataGridViewElementStates zawiera następujące wartości:

Wartości tego wyliczenia można łączyć z operatorami logicznymi bitowymi, dzięki czemu State właściwość może wyrażać więcej niż jeden stan jednocześnie. Na przykład DataGridViewElement element może być jednocześnie Frozen, Selectedi Visible.

Komórki i pasma

Kontrolka DataGridView składa się z dwóch podstawowych rodzajów obiektów: komórek i pasm. Wszystkie komórki pochodzą z klasy bazowej DataGridViewCell . Dwa rodzaje pasków DataGridViewColumn i DataGridViewRow, pochodzą z klasy bazowej DataGridViewBand .

Kontrolka DataGridView współdziała z kilkoma klasami, ale najczęściej spotykane są DataGridViewCellwartości , DataGridViewColumni DataGridViewRow.

Datagridviewcell

Komórka jest podstawową jednostką interakcji dla elementu DataGridView. Wyświetlanie jest wyśrodkowane na komórkach, a wpis danych jest często wykonywany za pośrednictwem komórek. Możesz uzyskać dostęp do komórek przy użyciu Cells kolekcji DataGridViewRow klasy i uzyskać dostęp do zaznaczonych komórek przy użyciu SelectedCells kolekcji kontrolki DataGridView . Poniższy model obiektów ilustruje to użycie i pokazuje hierarchię DataGridViewCell dziedziczenia.

Diagram that shows the DataGridViewCell Object Model hierarchy.

Typ DataGridViewCell jest abstrakcyjną klasą bazową, z której pochodzą wszystkie typy komórek. DataGridViewCell i jego typy pochodne nie są kontrolkami Windows Forms, ale niektóre hostują kontrolki Windows Forms. Wszystkie funkcje edycji obsługiwane przez komórkę są zwykle obsługiwane przez hostowaną kontrolkę.

DataGridViewCell obiekty nie kontrolują własnych funkcji wyglądu i malowania w taki sam sposób, jak kontrolki Windows Forms. DataGridView Zamiast tego obiekt jest odpowiedzialny za wygląd jego DataGridViewCell obiektów. Można znacząco wpłynąć na wygląd i zachowanie komórek przez interakcję z właściwościami i zdarzeniami DataGridView kontrolki. Jeśli masz specjalne wymagania dotyczące dostosowań, które wykraczają poza możliwości DataGridView kontrolki, możesz zaimplementować własną klasę, która pochodzi z DataGridViewCell lub jednej z jej klas podrzędnych.

Na poniższej liście przedstawiono klasy pochodzące z DataGridViewCellklasy :

Datagridviewcolumn

Schemat dołączonego DataGridView magazynu danych kontrolki jest wyrażony w DataGridView kolumnach kontrolki. Dostęp do kolumn kontrolki można uzyskać DataGridView przy użyciu kolekcji Columns . Dostęp do wybranych kolumn można uzyskać przy użyciu kolekcji SelectedColumns . Poniższy model obiektów ilustruje to użycie i pokazuje hierarchię DataGridViewColumn dziedziczenia.

Diagram that shows the DataGridViewColumn Object Model hierarchy.

Niektóre typy komórek kluczy mają odpowiednie typy kolumn. Pochodzą one z klasy bazowej DataGridViewColumn .

Na poniższej liście przedstawiono klasy pochodzące z DataGridViewColumnklasy :

Kontrolki edycji DataGridView

Komórki, które obsługują zaawansowane funkcje edycji, zwykle używają hostowanej kontrolki pochodzącej z kontrolki Windows Forms. Te kontrolki implementują IDataGridViewEditingControl również interfejs. Poniższy model obiektów ilustruje użycie tych kontrolek.

Diagram showing the DataGridView Editing Control Object Model hierarchy.

Następujące kontrolki edycji są dostarczane z kontrolką DataGridView :

Aby uzyskać informacje na temat tworzenia własnych kontrolek edycji, zobacz How to: Host Controls in Windows Forms DataGridView Cells (Instrukcje: kontrolki hosta w komórkach DataGridView formularzy systemu Windows).

W poniższej tabeli przedstawiono relację między typami komórek, typami kolumn i kontrolkami edycji.

Typ komórki Hostowana kontrolka Typ kolumny
DataGridViewButtonCell nie dotyczy DataGridViewButtonColumn
DataGridViewCheckBoxCell nie dotyczy DataGridViewCheckBoxColumn
DataGridViewComboBoxCell DataGridViewComboBoxEditingControl DataGridViewComboBoxColumn
DataGridViewImageCell nie dotyczy DataGridViewImageColumn
DataGridViewLinkCell nie dotyczy DataGridViewLinkColumn
DataGridViewTextBoxCell DataGridViewTextBoxEditingControl DataGridViewTextBoxColumn

Datagridviewrow

Klasa DataGridViewRow wyświetla pola danych rekordu z magazynu danych, do którego jest dołączona kontrolka DataGridView . Dostęp do wierszy kontrolki można uzyskać DataGridView przy użyciu kolekcji Rows . Dostęp do wybranych wierszy można uzyskać przy użyciu kolekcji SelectedRows . Poniższy model obiektów ilustruje to użycie i pokazuje hierarchię DataGridViewRow dziedziczenia.

Diagram that shows the DataGridViewRow Object Model hierarchy.

Można utworzyć własne typy z DataGridViewRow klasy, chociaż zwykle nie jest to konieczne. Kontrolka DataGridView ma kilka zdarzeń i właściwości związanych z wierszami do dostosowywania zachowania jego DataGridViewRow obiektów.

Jeśli włączysz DataGridView właściwość kontrolki AllowUserToAddRows , zostanie wyświetlony specjalny wiersz do dodawania nowych wierszy jako ostatni wiersz. Ten wiersz jest częścią Rows kolekcji, ale ma specjalne funkcje, które mogą wymagać twojej uwagi. Aby uzyskać więcej informacji, zobacz Using the Row for New Records in the Windows Forms DataGridView Control (Używanie wiersza dla nowych rekordów w kontrolce DataGridView formularzy systemu Windows).

Zobacz też