Domyślne zachowanie klawiatury i myszy za pomocą kontrolki DataGridView
W poniższych tabelach opisano, jak użytkownicy mogą wchodzić w interakcje z DataGridView kontrolką za pomocą klawiatury i myszy.
Uwaga
Aby dostosować zachowanie klawiatury, można obsługiwać standardowe zdarzenia klawiatury, takie jak KeyDown. Jednak w trybie edycji hostowana kontrolka edycji odbiera dane wejściowe klawiatury, a zdarzenia klawiatury nie występują dla kontrolki DataGridView . Aby obsłużyć edytowanie zdarzeń sterowania, dołącz programy obsługi do kontrolki edycji w procedurze obsługi zdarzeń EditingControlShowing . Alternatywnie można dostosować zachowanie klawiatury w podklasie DataGridView , zastępując ProcessDialogKey metody i ProcessDataGridViewKey .
Domyślna obsługa klawiatury
Podstawowe klucze nawigacji i wprowadzania
Klawisz lub kombinację klawiszy | opis |
---|---|
Strzałka | Przenosi fokus do komórki bezpośrednio poniżej bieżącej komórki. Jeśli fokus znajduje się w ostatnim wierszu, 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, 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, nic nie robi. |
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, nic nie robi. |
Strona główna | Przenosi fokus do pierwszej komórki w bieżącym wierszu. |
Zakończenie | Przenosi fokus do ostatniej komórki w bieżącym wierszu. |
Strona w dół | Przewija kontrolkę w dół przez liczbę w pełni wyświetlanych wierszy. Przenosi fokus do ostatniego w pełni wyświetlanego wiersza bez zmieniania kolumn. |
Strona w górę | Przewija kontrolkę w górę przez liczbę w pełni wyświetlanych wierszy. Przenosi fokus do pierwszego wyświetlanego wiersza bez zmieniania kolumn. |
Tab | StandardTab Jeśli wartość właściwości to false , przenosi fokus do następnej komórki w bieżącym wierszu. Jeśli fokus znajduje się już 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.StandardTab Jeśli wartość właściwości to true , przenosi fokus do następnej kontrolki w kolejności tabulacji kontenera nadrzędnego. |
Shift Tab + | StandardTab Jeśli wartość właściwości to false , 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.StandardTab Jeśli wartość właściwości to true , przenosi fokus do poprzedniej kontrolki w kolejności tabulacji kontenera nadrzędnego. |
Ctrl + Tab | StandardTab Jeśli wartość właściwości to false , przenosi fokus do następnej kontrolki w kolejności tabulacji kontenera nadrzędnego.StandardTab Jeśli wartość właściwości to true , przenosi fokus do następnej komórki w bieżącym wierszu. Jeśli fokus znajduje się już 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. |
Ctrl + Shift + Tab | StandardTab Jeśli wartość właściwości to false , przenosi fokus do poprzedniej kontrolki w kolejności tabulacji kontenera nadrzędnego.StandardTab Jeśli wartość właściwości to true , 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. |
Ctrl + strzałka | Przenosi fokus do najdalejszej komórki w kierunku strzałki. |
Ctrl + Strona główna | Przenosi fokus do pierwszej komórki w kontrolce. |
Ctrl + Koniec | Przenosi fokus do ostatniej komórki w kontrolce. |
Ctrl Page down/up (Strzałka + w dół/w górę) | Tak samo jak Strona w dół lub Strona w górę. |
F2 | Umieszcza bieżącą komórkę w trybie edycji komórki, jeśli EditMode wartość właściwości to EditOnF2 lub EditOnKeystrokeOrF2. |
F3 | Sortuje bieżącą kolumnę, jeśli DataGridViewColumn.SortMode wartość właściwości to Automatic. To samo, co kliknięcie bieżącego nagłówka kolumny. Dostępne od programu .NET Framework 4.7.2. Aby włączyć tę funkcję, aplikacje muszą być przeznaczone dla platformy .NET Framework 4.7.2 lub nowszej albo jawnie zdecydować się na ulepszenia ułatwień dostępu przy użyciu przełączników AppContext. |
F4 | Jeśli bieżąca komórka to DataGridViewComboBoxCell, umieszcza komórkę w trybie edycji i wyświetla listę rozwijaną. |
Alt + Strzałka w górę/w dół | Jeśli bieżąca komórka to DataGridViewComboBoxCell, umieszcza komórkę w trybie edycji i wyświetla listę rozwijaną. |
Alt + Strzałka w lewo/w prawo | Zwiększa lub zmniejsza szerokość kolumny bieżącej komórki. |
Space | Jeśli bieżąca komórka to DataGridViewButtonCell, DataGridViewLinkCelllub DataGridViewCheckBoxCell, zgłasza CellClick zdarzenia i CellContentClick . Jeśli bieżąca DataGridViewButtonCellkomórka to , naciśnie również przycisk . Jeśli bieżąca komórka to DataGridViewCheckBoxCell, również zmienia stan sprawdzania. |
Wprowadź | 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ę. Jeśli kontrolka nie jest w trybie edycji, przywraca wszelkie zmiany wprowadzone w bieżącym wierszu, jeśli kontrolka jest powiązana ze źródłem danych obsługującym edytowanie lub tryb wirtualny został zaimplementowany z zakresem zatwierdzania na poziomie wiersza. |
Backspace | Usuwa znak przed punktem wstawiania podczas edytowania komórki. |
Usuwanie | Usuwa znak po punkcie wstawiania podczas edytowania komórki. |
Ctrl + Enter | Zatwierdza wszelkie zmiany w bieżącej komórce bez przenoszenia fokusu. Zatwierdza również wszelkie zmiany w bieżącym wierszu, jeśli kontrolka jest powiązana ze źródłem danych obsługującym edycję lub trybem wirtualnym została zaimplementowana z zakresem zatwierdzania na poziomie wiersza. |
Ctrl + 0 | DBNull.Value Wprowadza wartość do bieżącej komórki, jeśli można edytować komórkę. Domyślnie wartość wyświetlana dla DBNull wartości komórki jest wartością NullValue właściwości DataGridViewCellStyle obowiązującej dla bieżącej komórki. |
Klucze wyboru
MultiSelect Jeśli właściwość jest ustawiona na false
, a SelectionMode właściwość jest ustawiona na CellSelect, zmiana bieżącej komórki przy użyciu kluczy nawigacji spowoduje zmianę zaznaczenia na nową komórkę. Klawisze Shift, Ctrl i Alt nie mają wpływu na to zachowanie.
SelectionMode Jeśli właściwość jest ustawiona na RowHeaderSelect lub ColumnHeaderSelect, takie samo zachowanie występuje, ale z następującymi dodatkami.
Klawisz lub kombinację klawiszy | opis |
---|---|
Shift Spacja + | Wybiera pełny wiersz lub kolumnę (tak samo jak kliknięcie nagłówka wiersza lub kolumny). |
klawisz nawigacji (klawisz strzałki, strona w górę/w dół, strona główna, koniec) | Jeśli zaznaczono pełny wiersz lub kolumnę, zmiana bieżącej komórki na nowy wiersz lub kolumnę powoduje przeniesienie zaznaczenia do pełnego nowego wiersza lub kolumny (w zależności od trybu zaznaczenia). |
Jeśli MultiSelect jest ustawiona wartość i SelectionMode jest ustawiona false
na FullRowSelect lub FullColumnSelect, zmiana bieżącej komórki na nowy wiersz lub kolumnę przy użyciu klawiatury przenosi zaznaczenie do pełnego nowego wiersza lub kolumny. Klawisze Shift, Ctrl i Alt nie mają wpływu na to zachowanie.
Jeśli MultiSelect jest ustawiona true
wartość , zachowanie nawigacji nie zmieni się, ale nawigowanie za pomocą klawiatury podczas naciśnięcia klawisza Shift (w tym Ctrl + Shift) spowoduje zmodyfikowanie zaznaczenia wielokomórkowego. Przed rozpoczęciem nawigacji kontrolka oznacza bieżącą komórkę jako komórkę zakotwiczenia. Podczas nawigowania po naciśnięciu klawisza Shift zaznaczenie zawiera wszystkie komórki między komórką kotwicy a bieżącą komórką. Inne komórki w kontrolce pozostaną zaznaczone, jeśli zostały już wybrane, ale mogą stać się niezaznaczone, jeśli nawigacja za pomocą klawiatury tymczasowo umieszcza je między komórką kotwicy a bieżącą komórką.
Jeśli MultiSelect jest ustawiona wartość i SelectionMode jest ustawiona true
na FullRowSelect lub FullColumnSelect, zachowanie komórki kotwicy i bieżącej komórki jest takie samo, ale tylko pełne wiersze lub kolumny stają się zaznaczone lub niezaznaczone.
Domyślna obsługa myszy
Podstawowa obsługa myszy
Uwaga
Kliknięcie komórki za pomocą lewego przycisku myszy zawsze zmienia bieżącą komórkę. Kliknięcie komórki prawym przyciskiem myszy powoduje otwarcie menu skrótów, gdy jest dostępny.
Akcja myszy | opis |
---|---|
Lewy przycisk myszy w dół | Powoduje, że klikniętą komórkę jest bieżąca komórka i zgłasza DataGridView.CellMouseDown zdarzenie. |
Lewy przycisk myszy w górę | DataGridView.CellMouseUp Wywołuje zdarzenie |
Kliknij lewym przyciskiem myszy | Wywołuje zdarzenia DataGridView.CellClick i DataGridView.CellMouseClick |
Lewy przycisk myszy w dół i przeciągnij na komórkę nagłówka kolumny | DataGridView.AllowUserToOrderColumns Jeśli właściwość ma true wartość , przenosi kolumnę, aby można ją było porzucić w nowej pozycji. |
Wybór myszy
Żadne zachowanie wyboru nie jest skojarzone z środkowym przyciskiem myszy lub kółkiem myszy.
Jeśli właściwość jest ustawiona MultiSelect na false
, a SelectionMode właściwość jest ustawiona na CellSelect, występuje następujące zachowanie.
Akcja myszy | opis |
---|---|
Kliknij pozycję | Wybiera tylko bieżącą komórkę, jeśli użytkownik kliknie komórkę. Brak zachowania wyboru, jeśli użytkownik kliknie nagłówek wiersza lub kolumny. |
Kliknij prawym przyciskiem myszy pozycję | Wyświetla menu skrótów, jeśli jest dostępny. |
To samo zachowanie występuje, gdy SelectionMode właściwość jest ustawiona na RowHeaderSelect lub ColumnHeaderSelect, z tą różnicą, że w zależności od trybu zaznaczenia kliknięcie nagłówka wiersza lub kolumny spowoduje wybranie pełnego wiersza lub kolumny i ustawienie bieżącej komórki na pierwszą komórkę w wierszu lub kolumnie.
Jeśli SelectionMode ustawiono wartość FullRowSelect lub FullColumnSelect, kliknięcie dowolnej komórki w wierszu lub kolumnie spowoduje wybranie pełnego wiersza lub kolumny.
Jeśli MultiSelect jest ustawiona wartość true
, kliknięcie komórki przy naciśnięciu klawisza Ctrl lub Shift spowoduje zmodyfikowanie zaznaczenia wielokomórkowego.
Po kliknięciu komórki przy naciśnięciu klawisza Ctrl komórka zmieni jego stan zaznaczenia, podczas gdy wszystkie pozostałe komórki zachowują bieżący stan zaznaczenia.
Po kliknięciu komórki lub serii komórek przy naciśnięciu klawisza Shift zaznaczenie zawiera wszystkie komórki między bieżącą komórką a komórką zakotwiczenia znajdującą się w pozycji bieżącej komórki przed pierwszym kliknięciem. Po kliknięciu i przeciągnięciu wskaźnika w wielu komórkach komórka kotwicy jest komórką klikniętą na początku operacji przeciągania. Kolejne kliknięcia po naciśnięciu klawisza Shift zmieniają bieżącą komórkę, ale nie komórkę kotwicy. Inne komórki w kontrolce pozostaną zaznaczone, jeśli zostały już wybrane, ale mogą stać się niezaznaczone, jeśli nawigacja myszy tymczasowo umieszcza je między komórką kotwicy a bieżącą komórką.
Jeśli MultiSelect jest ustawiona wartość i SelectionMode jest ustawiona true
na RowHeaderSelect lub ColumnHeaderSelect, kliknięcie nagłówka wiersza lub kolumny (w zależności od trybu zaznaczenia) przy naciśnięciu klawisza Shift spowoduje zmodyfikowanie istniejącego zaznaczenia pełnych wierszy lub kolumn, jeśli taki wybór istnieje. W przeciwnym razie wyczyści zaznaczenie i rozpocznie nowy wybór pełnych wierszy lub kolumn. Kliknięcie nagłówka wiersza lub kolumny przy naciśnięciu klawisza Ctrl spowoduje jednak dodanie lub usunięcie klikniętego wiersza lub kolumny z bieżącego zaznaczenia bez modyfikowania bieżącego zaznaczenia.
Jeśli MultiSelect jest ustawiona wartość i SelectionMode jest ustawiona true
na FullRowSelect lub FullColumnSelect, kliknięcie komórki przy naciśnięciu klawisza Shift lub Ctrl zachowuje się w taki sam sposób, z wyjątkiem tego, że dotyczy to tylko pełnych wierszy i kolumn.
Zobacz też
.NET Desktop feedback
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla