能够选择一行,但不应选择DataGridView

时间:2017-04-23 09:21:29

标签: c# winforms datagridview fullrowselect

我有大约5列的DataGridView,最后一列是 DataGridViewLinkColumn 类型。所以这里的要求是我应该能够选择我想要的任何行,当我这样做时,除了该选定行中的最后一列之外,应该选择所有列。由于最后一列包含超链接文本,因此编写了一些要运行的函数。

目前我已将选择模式设置为 FullRowSelect

为了达到要求,我尝试将模式设置为CellSelect,并且在 CellContentClick 中,我为所选行的特定列设置了“ Selected ”属性。但选择没有正确发生。点击后它就会消失。我也尝试在 CellMouseUp 中加入相同的逻辑,但它也没有用。

请告诉我实现要求的方法或解决方法。

非常感谢!

1 个答案:

答案 0 :(得分:1)

首先将SelectionMode设置为CellSelect。然后对SelectionChanged事件进行编码:

private void dataGridView1_SelectionChanged(object sender, EventArgs e)
{
    foreach (DataGridViewCell c in dataGridView1.CurrentRow.Cells)
            c.Selected = c.ColumnIndex != 4;
}

请注意,这没有取消选择行的规定!