Windows 窗体 DataGridView 控件中的选择模式

有时,应用程序应基于用户在 DataGridView 控件中的选择来执行操作。 根据具体的操作,您可能希望限制可能的选择类型。 例如,假设应用程序可以为当前所选记录打印报表。 在这种情况下,您可能希望配置 DataGridView 控件,以便单击行内的任何地方都会始终选择整个行,并且每次只能选择一行。

通过将 DataGridView.SelectionMode 属性设置为下列 DataGridViewSelectionMode 枚举值之一,可以指定允许的选择。

DataGridViewSelectionMode 值

说明

CellSelect

单击单元格时可选择它。 不能用行和列标题进行选择。

ColumnHeaderSelect

单击单元格时可选择它。 单击列标题可以选择整个列。 列标题不能用于排序。

FullColumnSelect

单击单元格或列标题可以选择整个列。 列标题不能用于排序。

FullRowSelect

单击单元格或行标题可以选择整个行。

RowHeaderSelect

默认的选择模式。 单击单元格时可选择它。 单击行标题可以选择整个行。

提示

如果在运行时更改选择模式,将自动清除当前选择。

默认情况下,用户可以通过拖动鼠标拖动或在选择时按下 Ctrl 或 Shift 来扩展或修改选择范围并选择多个行、列或单元格,也可以通过单击左上角的标题单元格来选择控件中的所有单元格。 若要禁止此行为,请将 MultiSelect 属性设置为 false。

FullRowSelectRowHeaderSelect 模式允许用户通过选择行并按 Delete 键来删除这些行。 只有在当前单元格未处于编辑模式中、AllowUserToDeleteRows 属性设置为 true 并且基础数据源允许由用户删除行时,用户才能删除行。 注意,这些设置不能防止通过编程删除行。

通过编程进行选择

当前的选择模式限制了由编程或用户进行选择的行为。 可以通过设置 DataGridView 控件中具有的任何单元格、行或列的 Selected 属性,以编程方式更改当前选择。 还可以通过 SelectAll 方法来选择控件中的所有单元格,具体取决于选择模式。 若要清除选择,请使用 ClearSelection 方法。

如果 MultiSelect 属性设置为 true,则可以通过更改元素的 Selected 属性,在选择中添加 DataGridView 元素,或从选择中移除它们。 否则,如果将一个元素的 Selected 属性设置为 true,就会从选择中自动移除其他元素。

注意,更改 CurrentCell 属性的值不会改变当前选择。

可以通过 DataGridView 控件的 SelectedCellsSelectedRowsSelectedColumns 属性来检索当前选择的单元格、行或列的集合。 如果控件中的所有单元格都被选中,则访问这些属性将是低效的。 在这种情况下,若要避免性能下降,请首先使用 AreAllCellsSelected 方法。 另外,通过访问这些集合来确定所选的单元格、行或列的数目将是低效的。 而应当在传入 Selected 值的情况下使用 GetCellCountGetRowCountGetColumnCount 方法。

提示

可以在 DataGridView 类概述中找到演示以编程方式使用选定单元格的代码示例。

请参见

任务

如何:设置 Windows 窗体 DataGridView 控件的选择模式

参考

DataGridView

MultiSelect

SelectionMode

DataGridViewSelectionMode

其他资源

Windows 窗体 DataGridView 控件的选项和剪贴板使用