Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Gridview通过复选框以编程方式更改行背景色_C#_Gridview_Datagridview_Colors_Row - Fatal编程技术网

C# Gridview通过复选框以编程方式更改行背景色

C# Gridview通过复选框以编程方式更改行背景色,c#,gridview,datagridview,colors,row,C#,Gridview,Datagridview,Colors,Row,我正在使用VS2010C# 我有一个DataGridView不连接到数据源(colums是手动添加的),每行都有一个复选框,应该始终启用该复选框。 当用户选中复选框时,它应该做两件事: 启用gridview的行(其余列、文本框、组合框等) 将行的背景色更改为白色(默认为灰色,如禁用) 我尝试了所有提供的代码和其他解决方案,但没有任何上述要求的解决方案。 请帮忙。!! 非常感谢 private void dgv1_CellClick(object sender, DataGridViewCe

我正在使用VS2010C# 我有一个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;
                }
            }
        }

    }
private void dgv1_CellClick(对象发送方,DataGridViewCellEventArgs e)
{
如果(e.ColumnIndex==0)
{
布尔值Xcheckbox=(布尔值)dgv1.Rows[e.RowIndex]。单元格[0]。值;
如果(Xcheckbox==true)
{
dgv1.Rows[dgv1.CurrentRow.Index].DefaultCellStyle.BackColor=System.Drawing.Color.Red;
}
对于(int i=1;i
您尝试过什么?请提供代码。I’我无法对你的问题发表评论。您可以将事件添加到复选框中,然后选择当前行。这将为您提供正确的操作方法

更新2:

你可以试试这个

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

将事件添加到行内的复选框中。在事件中,然后启用其余列、文本框和组合,并更改颜色。发布你已经尝试过的代码。我发布了我使用的代码,但仍然不起作用,请你帮忙!!谢谢,非常好,非常感谢。我想投票表决答案,但我仍然没有足够的信用。但无论如何,非常感谢