Domyślne zachowanie klawiatury i myszy w kontrolce DataGrid
W tym temacie opisano sposób interakcji użytkowników z kontrolką DataGrid przy użyciu klawiatury i myszy.
Typowe interakcje z DataGrid obejmują nawigację, wybór i edycję. Na zachowanie wyboru wpływają właściwości SelectionMode i SelectionUnit. Wartości domyślne, które powodują zachowanie opisane w tym temacie, to DataGridSelectionMode.Extended i DataGridSelectionUnit.FullRow. Zmiana tych wartości może spowodować, że zachowanie różni się od opisanego. Gdy komórka jest w trybie edycji, kontrolka do edycji może zastąpić standardowe zachowanie klawiatury DataGrid.
Domyślne zachowanie klawiatury
W poniższej tabeli wymieniono domyślne zachowanie klawiatury dla DataGrid.
Klawisz lub kombinacja klawiszy | Opis |
---|---|
STRZAŁKA W DÓŁ | Przenosi fokus do komórki bezpośrednio poniżej bieżącej komórki. Jeśli fokus znajduje się w ostatnim wierszu, naciśnięcie STRZAŁKA W DÓŁ nie powoduje niczego. |
STRZAŁKA W GÓRĘ | Przenosi fokus do komórki bezpośrednio nad bieżącą komórką. Jeśli kursor znajduje się w pierwszym wierszu, naciśnięcie strzałki w górę nic nie zmienia. |
STRZAŁKA W LEWO | Przenosi kursor do poprzedniej komórki w wierszu. Jeśli fokus znajduje się w pierwszej komórce w wierszu, naciśnięcie klawisza STRZAŁKA LEWO nie powoduje żadnej akcji. |
STRZAŁKA W PRAWO | Przenosi fokus do następnej komórki w wierszu. Jeśli fokus znajduje się w ostatniej komórce w wierszu, naciśnięcie strzałki w prawo nie powoduje żadnej akcji. |
DOM | Przenosi fokus do pierwszej komórki w bieżącym wierszu. |
KONIEC | Przenosi zaznaczenie do ostatniej komórki w bieżącym wierszu. |
STRONA W DÓŁ | Jeśli wiersze nie są pogrupowane, przewiń kontrolkę w dół o liczbę w pełni wyświetlanych wierszy. Przenosi fokus do ostatniego w pełni wyświetlanego wiersza bez zmieniania kolumn. Jeśli wiersze są grupowane, przenosi fokus do ostatniego wiersza w DataGrid bez zmieniania kolumn. |
STRONA W GÓRĘ | Jeśli wiersze nie są pogrupowane, przewiń kontrolkę w górę o liczbę w pełni wyświetlanych wierszy. Przenosi fokus do pierwszego wyświetlanego wiersza bez zmieniania kolumn. Jeśli wiersze są pogrupowane, przenosi fokus do pierwszego wiersza w DataGrid bez zmieniania kolumn. |
ZAKŁADKA | Przenosi fokus do następnej komórki w bieżącym wierszu. Jeśli fokus znajduje się w ostatniej komórce wiersza, przenosi fokus do pierwszej komórki w następnym wierszu. Jeśli fokus znajduje się w ostatniej komórce w kontrolce, przenosi fokus do następnej kontrolki w kolejności tabulatora kontenera nadrzędnego. Jeśli bieżąca komórka jest w trybie edycji i naciśnięcie TAB powoduje przeniesienie fokusu z bieżącego wiersza, wszelkie zmiany wprowadzone w wierszu zostaną zatwierdzone przed zmianą fokusu. |
SHIFT+TAB | Przenosi fokus do poprzedniej komórki w bieżącym wierszu. Jeśli fokus znajduje się już w pierwszej komórce wiersza, przenosi fokus do ostatniej komórki w poprzednim wierszu. Jeśli fokus znajduje się w pierwszej komórce w kontrolce, przenosi fokus do poprzedniej kontrolki w kolejności tabulatora kontenera nadrzędnego. Jeśli bieżąca komórka jest w trybie edycji i naciśnięcie TAB powoduje przeniesienie fokusu z bieżącego wiersza, wszelkie zmiany wprowadzone w wierszu zostaną zatwierdzone przed zmianą fokusu. |
CTRL+STRZAŁKA W DÓŁ | Przenosi fokus do ostatniej komórki w bieżącej kolumnie. |
CTRL+STRZAŁKA DO GÓRY | Przenosi fokus do pierwszej komórki w bieżącej kolumnie. |
CTRL+STRZAŁKA W PRAWO | Przenosi zaznaczenie do ostatniej komórki w bieżącym wierszu. |
CTRL+STRZAŁKA W LEWO | Przenosi fokus do pierwszej komórki w bieżącym wierszu. |
CTRL+HOME | Przenosi fokus do pierwszej komórki w kontrolce. |
CTRL+END | Przenosi fokus do ostatniej komórki w kontrolce. |
CTRL+PAGE DOWN | Tak samo jak STRONA W DÓŁ. |
CTRL+PAGE UP | Tak samo jak PAGE UP. |
F2 | Jeśli właściwość DataGrid.IsReadOnly jest false , a właściwość DataGridColumn.IsReadOnly jest false dla bieżącej kolumny, umieszcza bieżącą komórkę w trybie edycji komórki. |
WEJŚĆ | Zatwierdza wszelkie zmiany w bieżącej komórce i wierszu i przenosi fokus do komórki bezpośrednio poniżej bieżącej komórki. Jeśli kursor znajduje się w ostatnim wierszu, zatwierdza wszelkie zmiany bez przenoszenia kursora. |
ESC | Jeśli kontrolka jest w trybie edycji, anuluje edycję i przywraca wszelkie zmiany wprowadzone w kontrolce. Jeśli bazowe źródło danych implementuje IEditableObject, naciśnięcie ESC po raz drugi anuluje tryb edycji dla całego wiersza. |
BACKSPACE | Usuwa znak przed kursorem podczas edytowania komórki. |
USUNĄĆ | Usuwa znak po kursorze podczas edytowania komórki. |
CTRL+ENTER | Zatwierdza wszelkie zmiany w bieżącej komórce bez przenoszenia fokusu. |
CTRL+A | Jeśli SelectionMode jest ustawiona na Extended, wybiera wszystkie wiersze w DataGrid. |
Klucze wyboru
Jeśli właściwość SelectionMode jest ustawiona na Extended, zachowanie nawigacji nie zmienia się, ale nawigowanie za pomocą klawiatury podczas trzymania klawisza SHIFT (w tym CTRL+SHIFT) spowoduje zmodyfikowanie zaznaczenia obejmującego wiele wierszy. Przed rozpoczęciem nawigacji kontrolka oznacza bieżący wiersz jako wiersz kotwicy. Po naciśnięciu SHIFT podczas nawigowania zaznaczenie zawiera wszystkie wiersze między wierszem zakotwiczenia a bieżącym wierszem.
Następujące klawisze wyboru modyfikują wybór wielu rzędów.
SHIFT+STRZAŁKA W DÓŁ
SHIFT+STRZAŁKA W GÓRĘ
SHIFT+PAGE DOWN
SHIFT+PAGE UP
CTRL+SHIFT+STRZAŁKA W DÓŁ
CTRL+SHIFT+STRZAŁKA W GÓRĘ
CTRL+SHIFT+HOME
CTRL+SHIFT+END
Domyślne zachowanie myszy
W poniższej tabeli wymieniono domyślne zachowanie myszy dla DataGrid.
Akcja myszy | Opis |
---|---|
Kliknij niezaznaczony wiersz | Powoduje, że kliknięty wiersz jest bieżącym wierszem, a klikniętą komórką jest bieżąca komórka. |
Kliknij bieżącą komórkę | Umieszcza bieżącą komórkę w trybie edycji. |
Przeciągnij komórkę nagłówka kolumny | Jeśli właściwość DataGrid.CanUserReorderColumns jest true , a właściwość DataGridColumn.CanUserReorder jest true dla bieżącej kolumny, przenosi kolumnę, aby można ją było umieścić w nowej pozycji. |
Przeciągnij separator nagłówka kolumny | Jeśli właściwość DataGrid.CanUserResizeColumns jest true , a właściwość DataGridColumn.CanUserResize jest true dla bieżącej kolumny, zmienia rozmiar kolumny. |
Kliknij dwukrotnie separator nagłówka kolumny | Jeśli właściwość DataGrid.CanUserResizeColumns jest true , a właściwość DataGridColumn.CanUserResize jest true dla bieżącej kolumny, automatycznie dopasowuje rozmiar kolumny przy użyciu trybu Auto. |
Kliknij komórkę nagłówka kolumny | Jeśli właściwość DataGrid.CanUserSortColumns jest równa true , a właściwość DataGridColumn.CanUserSort jest równa true dla bieżącej kolumny, wtedy kolumna jest sortowana.Kliknięcie nagłówka kolumny, która jest już posortowana, spowoduje odwrócenie kierunku sortowania tej kolumny. Naciśnięcie SHIFT podczas klikania wielu nagłówków kolumn spowoduje sortowanie według wielu kolumn w kolejności klikniętej. |
CTRL+kliknij wiersz | Jeśli SelectionMode jest ustawione na Extended, to modyfikowany jest nieciągły wybór wielowierszowy. Jeśli wiersz jest już zaznaczony, usuń zaznaczenie wiersza. |
SHIFT+kliknij wiersz | Jeśli SelectionMode jest ustawiona na Extended, modyfikuje ciągły wybór wielowierszowy. |
Kliknij nagłówek grupy wierszy | Rozwija lub zwija grupę. |
Kliknij przycisk „Wybierz wszystko” w lewym górnym rogu DataGrid | Jeśli SelectionMode jest ustawiona na Extended, wybiera wszystkie wiersze w DataGrid. |
Wybór myszy
Jeśli właściwość SelectionMode jest ustawiona na Extended, kliknięcie wiersza przy naciśnięciu CTRL lub SHIFT spowoduje zmodyfikowanie zaznaczenia wielowierszowego.
Po kliknięciu wiersza przy naciśnięciu CTRL wiersz zmieni jego stan zaznaczenia, podczas gdy wszystkie inne wiersze zachowują bieżący stan zaznaczenia. Zrób to, aby wybrać niesąsiadujące wiersze.
Gdy klikniesz wiersz, trzymając wciśnięty klawisz SHIFT, zaznaczenie obejmuje wszystkie wiersze pomiędzy bieżącym wierszem a wierszem kotwicy, który znajdował się w pozycji bieżącego wiersza przed kliknięciem. Kolejne kliknięcia podczas naciśnięcia SHIFT zmieniają bieżący wiersz, ale nie wiersz kotwicy. Aby wybrać zakres sąsiednich wierszy, wykonaj tę czynność.
Ctrl+SHIFT można połączyć, aby wybrać nieprzyległe zakresy sąsiednich wierszy. W tym celu wybierz pierwszy zakres przy użyciu SHIFT+kliknij zgodnie z wcześniejszym opisem. Po wybraniu pierwszego zakresu wierszy użyj CTRL+kliknij, aby zaznaczyć pierwszy wiersz w następnym zakresie, a następnie kliknij ostatni wiersz w następnym zakresie, naciskając CTRL+SHIFT.
Zobacz też
.NET Desktop feedback