Поведение клавиатуры и мыши по умолчанию в элементе управления DataGrid
В этом разделе описывается, как пользователи могут взаимодействовать с элементом управления DataGrid с помощью клавиатуры и мыши.
Типичные взаимодействия с DataGrid включают навигацию, выделение и редактирование. Поведение выбора зависит от свойств SelectionMode и SelectionUnit. Значения по умолчанию, которые вызывают поведение, описанное в этом разделе, DataGridSelectionMode.Extended и DataGridSelectionUnit.FullRow. Изменение этих значений может привести к поведению, отличному от описанного. Если ячейка находится в режиме редактирования, элемент управления редактированием может переопределить стандартное поведение клавиатуры DataGrid.
Поведение клавиатуры по умолчанию
В следующей таблице перечислены действия клавиатуры по умолчанию для DataGrid.
Сочетание клавиш или ключей | Описание |
---|---|
СТРЕЛКА ВНИЗ | Перемещает фокус на ячейку непосредственно под текущей ячейкой. Если фокус установлен на последней строке, нажатие клавиши СТРЕЛКА ВНИЗ не приводит ни к чему. |
СТРЕЛКА ВВЕРХ | Перемещает фокус на ячейку непосредственно над текущей ячейкой. Если фокус находится в первой строке, нажатие клавиши СТРЕЛКА ВВЕРХ ничего не делает. |
СТРЕЛКА ВЛЕВО | Перемещает фокус на предыдущую ячейку в строке. Если фокус находится в первой ячейке строки, нажатие клавиши СТРЕЛКА ВЛЕВО ничего не делает. |
СТРЕЛКА ВПРАВО | Перемещает фокус на следующую ячейку в строке. Если фокус остановлен в последней ячейке строки, нажатие клавиши стрелка вправо ничего не делает. |
ДОМ | Перемещает фокус на первую ячейку в текущей строке. |
КОНЕЦ | Перемещает фокус на последнюю ячейку в текущей строке. |
СТРАНИЦА ВНИЗ | Если строки не сгруппированы, прокрутит элемент управления вниз по количеству строк, которые полностью отображаются. Перемещает фокус на последнюю полностью отображаемую строку без изменения столбцов. Если строки сгруппированы, переместите фокус на последнюю строку в DataGrid без изменения столбцов. |
СТРАНИЦА ВВЕРХ | Если строки не сгруппированы, прокрутит элемент управления вверх на число полностью отображаемых строк. Перемещает фокус на первую отображаемую строку без изменения столбцов. Если строки сгруппированы, переместите фокус на первую строку в DataGrid без изменения столбцов. |
Вкладка | Перемещает фокус на следующую ячейку в текущей строке. Если фокус находится в последней ячейке строки, переместите фокус на первую ячейку в следующей строке. Если фокус находится в последней ячейке элемента управления, переместите фокус на следующий элемент управления в порядке табуляции родительского контейнера. Если текущая ячейка находится в режиме редактирования и нажатие клавиши TAB приводит к переходу фокуса от текущей строки, все изменения, внесенные в строку, фиксируются перед изменением фокуса. |
SHIFT+TAB | Перемещает фокус на предыдущую ячейку в текущей строке. Если фокус уже находится в первой ячейке строки, переместите фокус на последнюю ячейку в предыдущей строке. Если фокус находится в первой ячейке элемента управления, переместите фокус на предыдущий элемент управления в порядке табуляции родительского контейнера. Если текущая ячейка находится в режиме редактирования и нажатие клавиши TAB приводит к переходу фокуса от текущей строки, все изменения, внесенные в строку, фиксируются перед изменением фокуса. |
CTRL+СТРЕЛКА ВНИЗ | Перемещает фокус на последнюю ячейку текущего столбца. |
CTRL+стрелка вверх | Перемещает фокус на первую ячейку в текущем столбце. |
CTRL+СТРЕЛКА ВПРАВО | Перемещает фокус на последнюю ячейку в текущей строке. |
CTRL+СТРЕЛКА ВЛЕВО | Перемещает фокус на первую ячейку в текущей строке. |
CTRL+ДОМОЙ | Перемещает фокус на первую ячейку элемента управления. |
Ctrl+End | Перемещает фокус на последнюю ячейку элемента управления. |
CTRL+СТРЕЛКА ВНИЗ | То же, что и PAGE DOWN. |
CTRL + клавиша PAGE UP | То же, что и PAGE UP. |
F2 | Если свойство DataGrid.IsReadOnlyfalse , а свойство DataGridColumn.IsReadOnlyfalse для текущего столбца, помещает текущую ячейку в режим редактирования ячеек. |
ВХОДИТЬ | Фиксирует любые изменения в текущей ячейке и строке и перемещает фокус на ячейку непосредственно под текущей ячейкой. Если фокус находится в последней строке, фиксирует любые изменения без перемещения фокуса. |
ESC | Если элемент управления находится в режиме редактирования, отменяет редактирование и возвращает все изменения, внесенные в элемент управления. Если базовый источник данных реализует IEditableObject, нажатие клавиши ESC во второй раз отменяет режим редактирования для всей строки. |
НАЗАД | Удаляет символ перед курсором при редактировании ячейки. |
УДАЛИТЬ | Удаляет символ после курсора при редактировании ячейки. |
CTRL+ВВОД | Фиксирует любые изменения в текущей ячейке без перемещения фокуса. |
CTRL+A | Если SelectionMode задано значение Extended, выбирает все строки в DataGrid. |
Ключи выбора
Если для свойства SelectionMode задано значение Extended, поведение навигации не изменяется, но при нажатии клавиши SHIFT (включая CTRL+SHIFT) изменится выбор нескольких строк. Перед началом навигации элемент управления помечает текущую строку как строку привязки. При переходе во время нажатия клавиши SHIFT выбор включает все строки между строкой привязки и текущей строкой.
Следующие ключи выбора изменяют выбор нескольких строк.
SHIFT+СТРЕЛКА ВНИЗ
SHIFT+СТРЕЛКА ВВЕРХ
SHIFT+СТРЕЛКА ВНИЗ
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.CanUserResizeColumnstrue , а свойство DataGridColumn.CanUserResizetrue для текущего столбца, автоматически масштабирует столбец с помощью режима изменения размера Auto. |
Щелкните ячейку заголовка столбца | Если свойство DataGrid.CanUserSortColumns равно true и свойство DataGridColumn.CanUserSort равно true для текущего столбца, то столбец сортируется.Щелчок по заголовку уже отсортированного столбца изменит направление его сортировки. При нажатии клавиши SHIFT и щелчке по нескольким заголовкам столбцов, будет выполнена сортировка по выбранным столбцам в порядке их выбора. |
CTRL+щелкнуть по строке | Если для SelectionMode установлено значение Extended, модифицируется несмежный выбор нескольких строк. Если строка уже выбрана, отменяет выбор строки. |
Нажмите SHIFT+щелкните на строке | Если для SelectionMode задано значение Extended, изменяет непрерывный выбор нескольких строк. |
Щелкните по заголовку группы строк. | Разворачивает или сворачивает группу. |
Нажмите кнопку "Выбрать все" в левом верхнем углу DataGrid | Если SelectionMode задано значение Extended, выбирает все строки в DataGrid. |
Выбор мыши
Если для свойства SelectionMode задано значение Extended, щелкнув строку при нажатии клавиш CTRL или SHIFT, изменится выбор нескольких строк.
Щелкнув строку при нажатии клавиш CTRL, строка изменит состояние выбора, а все остальные строки сохраняют текущее состояние выбора. Сделайте это, чтобы выбрать не смежные строки.
При нажатии клавиши SHIFT выбор включает все строки между текущей строкой и строкой привязки, расположенной в позиции текущей строки перед щелчком. Последующие щелчки при нажатии клавиш SHIFT изменяют текущую строку, но не строку привязки. Сделайте это, чтобы выбрать диапазон смежных строк.
CTRL+SHIFT можно объединить для выбора не смежных диапазонов смежных строк. Для этого выберите первый диапазон с помощью SHIFT+click, как описано ранее. После выбора первого диапазона строк нажмите клавиши CTRL+CLICK, чтобы выбрать первую строку в следующем диапазоне, а затем щелкните последнюю строку в следующем диапазоне при нажатии клавиш CTRL+SHIFT.
См. также
.NET Desktop feedback