Режимы выделения содержимого элемента управления DataGridView в Windows Forms
Иногда бывает нужно, чтобы приложение выполняло действия на основе выбора пользователей в элементе управления DataGridView. В зависимости от действий может потребоваться ограничить возможные типы выбора. Например, предположим, что приложение может распечатать отчет для выбранной в настоящий момент записи. В этом случае может потребоваться настроить элемент управления DataGridView таким образом, чтобы при щелчке в любом месте строки всегда выбиралась вся строка, и чтобы за один раз можно было выбрать только одну строку.
Вы можете указать разрешенные варианты выбора, задав для свойства DataGridView.SelectionMode одно из следующих значений перечисления DataGridViewSelectionMode.
Значение DataGridViewSelectionMode | Description |
---|---|
CellSelect | При щелчке ячейки она выбирается. Заголовки строк и столбцов нельзя использовать для выбора. |
ColumnHeaderSelect | При щелчке ячейки она выбирается. При щелчке заголовка столбца выбирается весь столбец. Заголовки столбцов нельзя использовать для сортировки. |
FullColumnSelect | При щелчке ячейки или заголовка столбца выбирается весь столбец. Заголовки столбцов нельзя использовать для сортировки. |
FullRowSelect | При щелчке ячейки или заголовка строки выбирается вся строка. |
RowHeaderSelect | Режим выбора по умолчанию. При щелчке ячейки она выбирается. При щелчке заголовка строки выбирается вся строка. |
Примечание.
Изменение режима выбора во время выполнения автоматически очищает текущий выбор.
По умолчанию пользователи могут выбирать несколько строк, столбцов или ячеек, перетаскивая их мышью, нажимая клавиши CTRL или SHIFT при выборе, чтобы расширить или изменить выделение, или щелкая ячейку заголовка в верхнем левом углу, чтобы выбрать все ячейки в элементе управления. Чтобы запретить такое поведение, задайте для свойства MultiSelect значение false
.
В режимах FullRowSelect и RowHeaderSelect пользователи могут удалять строки, выбирая их и нажимая клавишу DELETE. Пользователи могут удалять строки только в том случае, если текущая ячейка не находится в режиме редактирования, свойство AllowUserToDeleteRows имеет значение true
, а базовый источник данных поддерживает удаление строк пользователем. Обратите внимание, что эти параметры не препятствуют удалению строк программным образом.
Программный выбор
Текущий режим выбора ограничивает поведение программного выбора, а также пользовательского выбора. Текущий выбор можно изменить программным способом, задав свойство Selected
всех ячеек, строк или столбцов, присутствующих в элементе управления DataGridView. В зависимости от режима выбора вы также можете выбрать все ячейки в элементе управления с помощью метода SelectAll. Чтобы очистить выбор, используйте методClearSelection.
Если свойство MultiSelect имеет значение true
, вы можете добавлять элементы DataGridView в выбор или удалять их из него, изменяя свойство Selected
элемента. В противном случае при задании значения true
для свойства Selected
одного элемента другие элементы автоматически удаляются из выбора.
Обратите внимание, что изменение значения свойства CurrentCell не изменяет текущий выбор.
Вы можете получить коллекцию выбранных в текущий момент ячеек, строк или столбцов с помощью свойств SelectedCells, SelectedRows и SelectedColumns элемента управления DataGridView. Если выбрана каждая ячейка элемента управления, обращаться к этим свойствам неэффективно. Чтобы избежать снижения производительности в этом случае, используйте сначала метод AreAllCellsSelected. Кроме того, доступ к этим коллекциям для определения количества выбранных ячеек, строк или столбцов может оказаться неэффективным. Вместо этого следует использовать метод GetCellCount, GetRowCount или GetColumnCount, передавая в него значение Selected.
Совет
Пример кода, демонстрирующий программное использование выбранных ячеек, можно найти в обзоре класса DataGridView.
См. также
.NET Desktop feedback
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по