DataGrid 컨트롤에서의 기본 키보드 및 마우스 동작

이 항목에서는 사용자가 키보드와 마우스를 사용하여 DataGrid 컨트롤과 상호 작용하는 방법을 설명합니다.

DataGrid와의 일반적인 상호 작용에는 탐색, 선택 및 편집이 포함됩니다. 선택 동작은 SelectionModeSelectionUnit 속성의 영향을 받습니다. 이 항목에 설명된 동작을 유발하는 기본값은 DataGridSelectionMode.ExtendedDataGridSelectionUnit.FullRow입니다. 이러한 값을 변경하면 설명된 것과 다른 동작이 발생할 수 있습니다. 셀이 편집 모드에 있는 경우 편집 컨트롤이 DataGrid의 표준 키보드 동작을 재정의할 수 있습니다.

기본 키보드 동작

다음 표에서는 DataGrid에 대한 기본 키보드 동작을 나열합니다.

키 또는 키 조합 설명
아래쪽 화살표 포커스를 현재 셀 바로 아래의 셀로 이동합니다. 포커스가 마지막 행에 있는 경우 아래쪽 화살표를 눌러도 아무런 작업이 수행되지 않습니다.
위쪽 화살표 포커스를 현재 셀 바로 위의 셀로 이동합니다. 포커스가 첫 번째 행에 있는 경우 위쪽 화살표를 눌러도 아무런 작업이 수행되지 않습니다.
왼쪽 화살표 행의 이전 셀로 포커스를 이동합니다. 포커스가 행의 첫 번째 셀에 있는 경우 왼쪽 화살표를 눌러도 아무런 작업이 수행되지 않습니다.
오른쪽 화살표 포커스를 행의 다음 셀로 이동합니다. 포커스가 행의 마지막 셀에 있는 경우 오른쪽 화살표를 눌러도 아무런 작업이 수행되지 않습니다.
Home 포커스를 현재 행의 첫 번째 셀로 이동합니다.
End 포커스를 현재 행의 마지막 셀로 이동합니다.
Page Down 행이 그룹화되지 않은 경우 컨트롤을 완전히 표시되는 행 수만큼 아래로 스크롤합니다. 열을 변경하지 않고 마지막으로 완전히 표시된 행으로 포커스를 이동합니다.

행이 그룹화되면 열을 변경하지 않고 포커스를 DataGrid의 마지막 행으로 이동합니다.
Page Up 행이 그룹화되지 않은 경우 컨트롤을 완전히 표시되는 행 수만큼 위로 스크롤합니다. 열을 변경하지 않고 첫 번째 표시된 행으로 포커스를 이동합니다.

행이 그룹화되면 열을 변경하지 않고 포커스를 DataGrid의 첫 번째 행으로 이동합니다.
Tab 포커스를 현재 행의 다음 셀로 이동합니다. 포커스가 행의 마지막 셀에 있는 경우 포커스를 다음 행의 첫 번째 셀로 이동합니다. 포커스가 컨트롤의 마지막 셀에 있는 경우 부모 컨테이너의 탭 순서에서 다음 컨트롤로 포커스를 이동합니다.

현재 셀이 편집 모드에 있고 TAB 키를 누르면 포커스가 현재 행에서 벗어나게 되면 포커스가 변경되기 전에 행에 적용된 모든 변경 내용이 커밋됩니다.
Shift+Tab 현재 행의 이전 셀로 포커스를 이동합니다. 포커스가 이미 행의 첫 번째 셀에 있는 경우 포커스를 이전 행의 마지막 셀로 이동합니다. 포커스가 컨트롤의 첫 번째 셀에 있는 경우 부모 컨테이너의 탭 순서에서 이전 컨트롤로 포커스를 이동합니다.

현재 셀이 편집 모드에 있고 TAB 키를 누르면 포커스가 현재 행에서 벗어나게 되면 포커스가 변경되기 전에 행에 적용된 모든 변경 내용이 커밋됩니다.
Ctrl+아래쪽 화살표 포커스를 현재 열의 마지막 셀로 이동합니다.
Ctrl+위쪽 화살표 포커스를 현재 열의 첫 번째 셀로 이동합니다.
Ctrl+오른쪽 화살표 포커스를 현재 행의 마지막 셀로 이동합니다.
Ctrl+왼쪽 화살표 포커스를 현재 행의 첫 번째 셀로 이동합니다.
Ctrl+Home 포커스를 컨트롤의 첫 번째 셀로 이동합니다.
Ctrl+End 포커스를 컨트롤의 마지막 셀로 이동합니다.
Ctrl+Page Down PAGE DOWN과 동일합니다.
Ctrl+Page Up PAGE UP과 동일합니다.
F2 현재 열에 대해 DataGrid.IsReadOnly 속성이 false이고, DataGridColumn.IsReadOnly 속성이 false인 경우 현재 셀을 셀 편집 모드로 전환합니다.
Enter 키 현재 셀과 행의 변경 내용을 커밋하고 포커스를 현재 셀 바로 아래의 셀로 이동합니다. 포커스가 마지막 행에 있으면 포커스를 이동하지 않고 변경 내용을 커밋합니다.
ESC 키 컨트롤이 편집 모드에 있는 경우 편집을 취소하고 컨트롤에서 변경한 내용을 되돌립니다. 기본 데이터 원본이 IEditableObject를 구현하는 경우 ESC를 두 번 누르면 전체 행에 대한 편집 모드가 취소됩니다.
Backspace 셀을 편집할 때 커서 앞의 문자를 삭제합니다.
DELETE 셀을 편집할 때 커서 뒤의 문자를 삭제합니다.
Ctrl+Enter 포커스를 이동하지 않고 현재 셀에 변경 내용을 커밋합니다.
Ctrl+A SelectionModeExtended로 설정된 경우 DataGrid의 모든 행을 선택합니다.

선택 키

SelectionMode 속성이 Extended로 설정된 경우 탐색 동작은 변경되지 않지만 SHIFT(CTRL+SHIFT 포함)를 누른 상태에서 키보드로 탐색하면 다중 행 선택이 수정됩니다. 탐색을 시작하기 전에 컨트롤은 현재 행을 앵커 행으로 표시합니다. SHIFT를 누른 상태에서 탐색할 때 선택 영역에는 앵커 행과 현재 행 사이의 모든 행이 포함됩니다.

다음 선택 키는 여러 행 선택을 수정합니다.

  • Shift+아래쪽 화살표

  • Shift+위쪽 화살표

  • Shift+Page Down

  • Shift+Page Up

  • Ctrl+Shift+아래쪽 화살표

  • Ctrl+Shift+위쪽 화살표

  • Ctrl+Shift+Home

  • Ctrl+Shift+End

기본 마우스 동작

다음 표에서는 DataGrid에 대한 기본 마우스 동작을 나열합니다.

마우스 작업 설명
선택되지 않은 행 클릭 클릭한 행을 현재 행으로 만들고 클릭한 셀을 현재 셀로 만듭니다.
현재 셀 클릭 현재 셀을 편집 모드로 전환합니다.
열 머리글 셀 끌기 현재 열에 대해 DataGrid.CanUserReorderColumns 속성이 true이고 DataGridColumn.CanUserReorder 속성이 true이면 열을 새 위치로 드롭할 수 있도록 이동합니다.
열 머리글 구분 기호 끌기 현재 열에 대해 DataGrid.CanUserResizeColumns 속성이 true이고 DataGridColumn.CanUserResize 속성이 true이면 열 크기를 조정합니다.
열 머리글 구분 기호 두 번 클릭 현재 열에 대해 DataGrid.CanUserResizeColumns 속성이 true이고 DataGridColumn.CanUserResize 속성이 true이면 Auto 크기 조정 모드를 사용하여 열의 크기를 자동으로 조정합니다.
열 머리글 셀 클릭 현재 열에 대해 DataGrid.CanUserSortColumns 속성이 true이고 DataGridColumn.CanUserSort 속성이 true이면 열을 정렬합니다.

이미 정렬된 열의 머리글을 클릭하면 해당 열의 정렬 방향이 반대로 됩니다.

여러 열 머리글을 클릭하는 동안 SHIFT 키를 누르면 여러 열을 클릭한 순서대로 정렬됩니다.
CTRL+행 클릭 SelectionModeExtended로 설정되면 연속되지 않은 여러 행 선택 영역이 수정됩니다.

행이 이미 선택된 경우 행의 선택을 취소합니다.
SHIFT+행 클릭 SelectionModeExtended로 설정되면 연속되는 여러 행 선택 영역이 수정됩니다.
행 그룹 머리글 클릭 그룹을 확장하거나 축소합니다.
DataGrid의 왼쪽 위 모서리에 있는 모두 선택 단추를 클릭합니다. SelectionModeExtended로 설정된 경우 DataGrid의 모든 행을 선택합니다.

마우스 선택

SelectionMode 속성이 Extended 설정된 경우 CTRL 또는 SHIFT를 누른 상태에서 행을 클릭하면 여러 행 선택 영역이 수정됩니다.

CTRL 키를 누른 상태에서 행을 클릭하면 행의 선택 상태가 변경되는 반면 다른 모든 행은 현재 선택 상태를 유지합니다. 인접하지 않은 행을 선택하려면 이 작업을 수행합니다.

SHIFT를 누른 상태에서 행을 클릭하면 선택 영역에는 클릭하기 전에 현재 행과 현재 행의 위치에 있는 앵커 행 사이의 모든 행이 포함됩니다. SHIFT를 누른 상태에서 계속 클릭하면 현재 행은 변경되지만 앵커 행은 변경되지 않습니다. 인접한 행 범위를 선택하려면 이 작업을 수행합니다.

CTRL+SHIFT를 결합하여 인접 행의 인접하지 않은 범위를 선택할 수 있습니다. 이렇게 하려면 앞에서 설명한 대로 SHIFT+클릭을 사용하여 첫 번째 범위를 선택합니다. 첫 번째 행 범위를 선택한 후 CTRL+클릭을 사용하여 다음 범위의 첫 번째 행을 선택한 다음, CTRL+SHIFT를 누른 상태에서 다음 범위의 마지막 행을 클릭합니다.

참고 항목