Поделиться через


Режимы выделения содержимого элемента управления DataGridView в Windows Forms

Обновлен: Ноябрь 2007

Иногда необходимо, чтобы приложение выполняло действия в зависимости от выбранного пользователем объекта внутри элемента управления DataGridView. В зависимости от действий может потребоваться запрет выбора некоторых типов объектов. Например, предположим, что приложение выполняет печать отчета по выделенной в данный момент записи. В этом случае, элемент управления DataGridView может потребоваться настроить таким образом, чтобы при щелчке в любой области строки выделялась строка целиком и только одна строка одновременно.

Объекты, выбор которых разрешается, можно указать при помощи свойства DataGridView.SelectionMode, присвоив ему одно из следующих значений перечисления DataGridViewSelectionMode.

Значение DataGridViewSelectionMode

Описание

CellSelect

Выделение ячейки по щелчку кнопкой мыши. Строки и столбцы выделить нельзя.

ColumnHeaderSelect

Выделение ячейки по щелчку кнопкой мыши. Выделение столбца целиком по щелчку на заголовке столбца. Заголовки столбцов нельзя использовать для сортировки.

FullColumnSelect

Выделение столбца целиком по щелчку на ячейке или заголовке столбца. Заголовки столбцов нельзя использовать для сортировки.

FullRowSelect

Выделение строки целиком по щелчку на ячейке или заголовке строки.

RowHeaderSelect

Режим выделения по умолчанию. Выделение ячейки по щелчку кнопкой мыши. Выделение строки целиком по щелчку на заголовке строки.

8x6w9028.alert_note(ru-ru,VS.90).gifПримечание.

Изменение режима выделения во время выполнения автоматически снимает текущее выделение.

По умолчанию пользователи могут выделять несколько строк, столбцов или ячеек путем перетаскивания курсора мыши, расширения или изменения области выделения при нажатой клавише CTRL или SHIFT, или по щелчку заголовка верхней левой ячейки для выделения всех строк в элементе управления. Чтобы запретить такое выделение, свойству MultiSelect следует присвоить значение false.

Режимы FullRowSelect и RowHeaderSelect позволяют удалять строки путем их выделения и нажатия клавиши DELETE. Пользователи могут удалить строки только в том случае, если текущая ячейка не в режиме редактирования, свойство AllowUserToDeleteRows имеет значение true, а основной источник данных поддерживает удаление строк пользователем. Обратите внимание, что эти параметры не препятствуют удалению строк программным образом.

Программное выделение

Текущий режим выделения ограничивает возможности программного выделения, равно как и выделения пользователем. Текущее выделение можно изменить программно, установив свойство Selected любых ячеек, строк или столбцов в элементе управления DataGridView. Кроме того, в зависимости от режима выделения можно также выделить все ячейки в элементе управления при помощи метода SelectAll. Чтобы снять выделение, используйте метод ClearSelection.

Если свойство MultiSelect имеет значение true, элементы DataGridView можно добавить в область выделения или исключить их из нее, изменив свойство Selected элемента. В противном случае, присвоение свойству Selected значения true для одного элемента приведет к автоматическому исключению элементов из выделения.

Обратите внимание, что изменение значения свойства CurrentCell не приводит к изменению текущего выделения.

Набор выделенных ячеек, строк или столбцов можно извлечь при помощи свойств SelectedCells, SelectedRows и SelectedColumns элемента управления DataGridView. Если в элементе управления выделены все ячейки, обращение к этим свойствам будет неэффективным. Чтобы избежать снижения производительности в этом случае, сначала используйте метод AreAllCellsSelected. Кроме того, обращение к этим коллекциям для определения числа выделенных ячеек, строк или столбцов может также оказаться неэффективным. Вместо этого следует использовать метод GetCellCount, GetRowCount или GetColumnCount, подставляющий значение Selected.

См. также

Задачи

Практическое руководство. Определение режима выделения для элемента управления DataGridView в Windows Forms

Ссылки

DataGridView

MultiSelect

SelectionMode

DataGridViewSelectionMode

Другие ресурсы

Выделение данных и операции с буфером обмена в элементе управления DataGridView в Windows Forms