Gridview通过复选框以编程方式更改行BackColor

时间:2014-03-31 10:43:34

标签: c# gridview datagridview colors row

我正在使用VS 2010 C# 我有一个DataGridView不是数据源(colums是手动添加的),每行都有一个复选框,应始终启用。 当用户选中该复选框时,它应该做两件事:

  • 启用gridview的行(其余列,文本框,组合......)
  • 将行的背景颜色更改为白色(默认为灰色,如禁用)

我尝试了所有提供的代码和其他解决方案,但没有针对上述任何要求的解决方案。 请帮忙 。!! 非常感谢

 private void dgv1_CellClick(object sender, DataGridViewCellEventArgs e)
    {
        if (e.ColumnIndex == 0)
        {
            Boolean Xcheckbox = (Boolean)dgv1.Rows[e.RowIndex].Cells[0].Value;
            if (Xcheckbox == true)
            {
                dgv1.Rows[dgv1.CurrentRow.Index].DefaultCellStyle.BackColor = System.Drawing.Color.Red;                        
            }
            for (int i = 1; i < dgv1.Columns.Count-1; i++)
            {
                {
                    dgv1.Rows[e.RowIndex].Cells[i].ReadOnly = Xcheckbox;
                }
            }
        }

    }

1 个答案:

答案 0 :(得分:1)

你试过了什么?请提供代码。 M无法对您的问题发表评论。您可以将事件添加到复选框,然后选择当前行。这将为您提供正确的进行方式。

更新2:

你可以试试这个

private void myDataGrid_OnCellValueChanged(object sender, DataGridViewCellEventArgs e)
{
    if (e.ColumnIndex == myCheckBoxColumn.Index && e.RowIndex != -1)
    {
        // Handle your checkbox state change here
    }
}