1

我有一个超过 100 行的数据网格,如果用户单击该行的第一列,则必须选择整行,如果他单击任何其他列,则不能选择整行我设置了 datagridview 的选择模式细胞选择并使其也只读并尝试了以下所有代码但发现没有任何用处可以提出任何想法

private void tbljobdata_CellClick(object sender, DataGridViewCellEventArgs e)
{
    if (tbljobdata.CurrentCell.ColumnIndex == 0)
    {
        tbljobdata.Rows[tbljobdata.CurrentCell.RowIndex].Selected = true;
    }
}
4

2 回答 2

2

处理鼠标按下事件,因为那是第一个捕获的。

private void tbljobdata_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
{
    if (e.ColumnIndex == 0)
        tbljobdata.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
    else
        tbljobdata.SelectionMode = DataGridViewSelectionMode.CellSelect;
}

在所需条件下也相应地更改只读属性。如果您愿意,实际上可以为单个单元格设置只读属性

于 2012-05-04T20:56:23.823 回答
1

请尝试以下代码:

private void tbljobdata_CellClick(object sender, DataGridViewCellEventArgs e)
{
    if (e.ColumnIndex == 0)
    {
        tbljobdata.Rows[e.RowIndex].Selected = true;
    }
}

有关CellClick事件的进一步阅读,请参阅 Docs 链接

于 2012-05-04T20:45:20.623 回答