Udostępnij za pośrednictwem


Tryby wyboru w kontrolce DataGridView w formularzach systemu Windows

Czasami aplikacja ma wykonywać akcje na podstawie wyborów użytkowników w kontrolce DataGridView. W zależności od akcji możesz ograniczyć możliwe rodzaje wyboru. Załóżmy na przykład, że aplikacja może wydrukować raport dla aktualnie wybranego rekordu. W takim przypadku możesz skonfigurować kontrolkę DataGridView tak, aby kliknięcie w dowolnym miejscu w wierszu zawsze wybierało cały wiersz, aby można było wybrać tylko jeden wiersz jednocześnie.

Można określić dozwolone wybory, ustawiając właściwość DataGridView.SelectionMode na jedną z następujących wartości wyliczenia DataGridViewSelectionMode.

Wartość DataGridViewSelectionMode Opis
CellSelect Kliknięcie komórki ją zaznaczy. Nie można używać nagłówków wierszy i kolumn do wybierania.
ColumnHeaderSelect Kliknięcie komórki ją zaznaczy. Kliknięcie nagłówka kolumny umożliwia wybranie całej kolumny. Nagłówki kolumn nie mogą być używane do sortowania.
FullColumnSelect Kliknięcie komórki lub nagłówka kolumny wybiera całą kolumnę. Nagłówki kolumn nie mogą być używane do sortowania.
FullRowSelect Kliknięcie komórki lub nagłówka wiersza zaznacza cały wiersz.
RowHeaderSelect Domyślny tryb zaznaczenia. Kliknięcie komórki ją zaznaczy. Kliknięcie nagłówka wiersza umożliwia wybranie całego wiersza.

Uwaga / Notatka

Zmiana trybu zaznaczenia podczas działania programu powoduje automatyczne wyczyszczenie bieżącego zaznaczenia.

Domyślnie użytkownicy mogą wybierać wiele wierszy, kolumn lub komórek, przeciągając myszą, naciskając CTRL lub SHIFT podczas wybierania, aby rozszerzyć lub zmodyfikować zaznaczenie albo kliknąć komórkę nagłówka w lewym górnym rogu, aby zaznaczyć wszystkie komórki w kontrolce. Aby zapobiec temu zachowaniu, ustaw właściwość MultiSelect na false.

Tryby FullRowSelect i RowHeaderSelect umożliwiają użytkownikom usuwanie wierszy, wybierając je i naciskając DELETE. Użytkownicy mogą usuwać wiersze tylko wtedy, gdy bieżąca komórka nie jest w trybie edycji, właściwość AllowUserToDeleteRows jest ustawiona na true, a bazowe źródło danych obsługuje usuwanie wierszy sterowanych przez użytkownika. Należy pamiętać, że te ustawienia nie uniemożliwiają programowego usuwania wierszy.

Wybór programowy

Bieżący tryb wyboru ogranicza zachowanie wyboru programowego, a także wybór użytkownika. Bieżące zaznaczenie można zmienić programatycznie, ustawiając właściwość Selected dowolnych komórek, wierszy lub kolumn w kontrolce DataGridView. Możesz również zaznaczyć wszystkie komórki w kontrolce za pomocą metody SelectAll, w zależności od trybu zaznaczenia. Aby wyczyścić zaznaczenie, użyj metody ClearSelection.

Jeśli właściwość MultiSelect jest ustawiona na true, możesz dodać elementy DataGridView do zaznaczenia lub usunąć je, zmieniając właściwość Selected elementu. W przeciwnym razie ustawienie właściwości Selected na true dla jednego elementu automatycznie usuwa inne elementy z zaznaczenia.

Należy pamiętać, że zmiana wartości właściwości CurrentCell nie zmienia bieżącego zaznaczenia.

Można pobrać kolekcję aktualnie zaznaczonych komórek, wierszy lub kolumn za pomocą właściwości SelectedCells, SelectedRowsi SelectedColumns kontrolki DataGridView. Uzyskiwanie dostępu do tych właściwości jest nieefektywne, gdy jest zaznaczona każda komórka w kontrolce. Aby uniknąć kary za wydajność w tym przypadku, najpierw użyj metody AreAllCellsSelected. Ponadto uzyskiwanie dostępu do tych kolekcji w celu określenia liczby zaznaczonych komórek, wierszy lub kolumn może być nieefektywne. Zamiast tego należy użyć metody GetCellCount, GetRowCountlub GetColumnCount, przekazując wartość Selected.

Wskazówka

Przykładowy kod, który demonstruje programowe użycie zaznaczonych komórek, można znaleźć w przeglądzie klasy DataGridView.

Zobacz także