Domyślne zachowanie myszy i klawiatury w formancie DataGrid

W tym temacie opisano sposób interakcji użytkowników z kontrolką DataGrid przy użyciu klawiatury i myszy.

Typowe interakcje z nawigacją, wyborem i edytowaniem DataGrid . Zachowanie wyboru ma wpływ na SelectionMode właściwości 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 edycji może zastąpić standardowe zachowanie klawiatury elementu DataGrid.

Domyślne zachowanie klawiatury

W poniższej tabeli wymieniono domyślne zachowanie klawiatury dla elementu DataGrid.

Klawisz lub kombinację 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 klawisza 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 fokus znajduje się w pierwszym wierszu, naciśnięcie strzałki w górę nic nie robi.
STRZAŁKA W LEWO Przenosi fokus do poprzedniej komórki w wierszu. Jeśli fokus znajduje się w pierwszej komórce w wierszu, naciśnięcie klawisza STRZAŁKA W LEWO nic nie robi.
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 klawisza STRZAŁKA W PRAWO nic nie robi.
STRONA GŁÓWNA Przenosi fokus do pierwszej komórki w bieżącym wierszu.
KONIEC Przenosi fokus do ostatniej komórki w bieżącym wierszu.
PAGE DOWN 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 kolumnie DataGrid bez zmieniania kolumn.
PAGE UP 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 kolumnie DataGrid bez zmieniania kolumn.
TAB 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 klawisza 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 klawisza TAB powoduje przeniesienie fokusu z bieżącego wiersza, wszelkie zmiany wprowadzone w wierszu zostaną zatwierdzone przed zmianą fokusu.
CTRL+DOWN ARROW Przenosi fokus do ostatniej komórki w bieżącej kolumnie.
CTRL + STRZAŁKA W GÓRĘ Przenosi fokus do pierwszej komórki w bieżącej kolumnie.
CTRL + STRZAŁKA W PRAWO Przenosi fokus 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 STRONA W GÓRĘ.
F2 DataGrid.IsReadOnly Jeśli właściwość jest false i DataGridColumn.IsReadOnly właściwość jest false dla bieżącej kolumny, umieszcza bieżącą komórkę w trybie edycji komórki.
ENTER 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 fokus znajduje się w ostatnim wierszu, zatwierdza wszelkie zmiany bez przenoszenia fokusu.
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 IEditableObjectpolecenie , naciśnięcie klawisza ESC po raz drugi anuluje tryb edycji dla całego wiersza.
BACKSPACE Usuwa znak przed kursorem podczas edytowania komórki.
USUŃ 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 wartość Extended, wybiera wszystkie wiersze w obiekcie DataGrid.

Klucze wyboru

SelectionMode Jeśli właściwość jest ustawiona na Extended, zachowanie nawigacji nie zmienia się, ale nawigowanie za pomocą klawiatury podczas naciśnięcia klawisza SHIFT (w tym CTRL+SHIFT) spowoduje zmodyfikowanie zaznaczenia wielowierszowego. Przed rozpoczęciem nawigacji kontrolka oznacza bieżący wiersz jako wiersz kotwicy. Podczas nawigowania po naciśnięciu klawisza SHIFT zaznaczenie zawiera wszystkie wiersze między wierszem kotwicy a bieżącym wierszem.

Następujące klucze wyboru modyfikują wybór wielu wierszy.

  • 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 elementu 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 DataGrid.CanUserReorderColumns Jeśli właściwość jest true i DataGridColumn.CanUserReorder właściwość jest true dla bieżącej kolumny, przenosi kolumnę, aby można ją było porzucić w nowej pozycji.
Przeciąganie separatora nagłówka kolumny DataGrid.CanUserResizeColumns Jeśli właściwość jest true i DataGridColumn.CanUserResize właściwość jest true dla bieżącej kolumny, zmienia rozmiar kolumny.
Kliknij dwukrotnie separator nagłówka kolumny DataGrid.CanUserResizeColumns Jeśli właściwość jest true i DataGridColumn.CanUserResize właściwość jest true dla bieżącej kolumny, automatycznie rozmiary kolumny przy użyciu trybu ustalania rozmiaruAuto.
Kliknij komórkę nagłówka kolumny DataGrid.CanUserSortColumns Jeśli właściwość jest true i DataGridColumn.CanUserSort właściwość jest true dla bieżącej kolumny, sortuje kolumnę.

Kliknięcie nagłówka kolumny, która jest już posortowana, spowoduje odwrócenie kierunku sortowania tej kolumny.

Naciśnięcie klawisza SHIFT podczas klikania wielu nagłówków kolumn spowoduje sortowanie według wielu kolumn w kolejności klikniętej.
CTRL+kliknięcie wiersza Jeśli SelectionMode jest ustawiona wartość Extended, modyfikuje nietęgliwy wybór wielowierszowy.

Jeśli wiersz jest już zaznaczony, usuń zaznaczenie wiersza.
SHIFT + kliknięcie wiersza Jeśli SelectionMode ustawiono wartość Extended, modyfikuje ciągły wybór wielu wierszy.
Kliknij nagłówek grupy wierszy Rozwija lub zwija grupę.
Kliknij przycisk Wybierz wszystko w lewym górnym rogu DataGrid Jeśli SelectionMode jest ustawiona wartość Extended, wybiera wszystkie wiersze w obiekcie DataGrid.

Wybór myszy

Jeśli właściwość jest ustawiona SelectionMode na Extended, kliknięcie wiersza przy naciśnięciu klawiszy CTRL lub SHIFT spowoduje zmodyfikowanie zaznaczenia wielowierszowego.

Po kliknięciu wiersza przy naciśnięciu klawisza CTRL wiersz zmieni jego stan zaznaczenia, podczas gdy wszystkie inne wiersze zachowują bieżący stan zaznaczenia. Zrób to, aby wybrać nieprzyległe wiersze.

Po kliknięciu wiersza przy naciśnięciu klawisza SHIFT zaznaczenie zawiera wszystkie wiersze między bieżącym wierszem a wierszem kotwicy znajdującym się w pozycji bieżącego wiersza przed kliknięciem. Kolejne kliknięcia podczas naciśnięcia klawisza SHIFT zmieniają bieżący wiersz, ale nie wiersz kotwicy. Zrób to, aby wybrać zakres sąsiednich wierszy.

Ctrl+SHIFT można połączyć, aby wybrać nieprzyległe zakresy sąsiednich wierszy. W tym celu wybierz pierwszy zakres przy użyciu klawisza SHIFT+kliknij zgodnie z wcześniejszym opisem. Po wybraniu pierwszego zakresu wierszy użyj klawiszy CTRL+kliknij, aby zaznaczyć pierwszy wiersz w następnym zakresie, a następnie kliknij ostatni wiersz w następnym zakresie, naciskając klawisze CTRL+SHIFT.

Zobacz też