Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.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# DataGridView行背景色重置_C#_Vb.net_Winforms_Datagridview - Fatal编程技术网

C# DataGridView行背景色重置

C# DataGridView行背景色重置,c#,vb.net,winforms,datagridview,C#,Vb.net,Winforms,Datagridview,我想给dataGridview中的某些行上色,并使用下面的代码成功地实现这一点,但是一旦我向dataGridview中添加更多行,它们都会重置为白色 这段代码检查在datagridview中创建它的前一个集合中的所有行,并将它们涂成浅蓝色。 这些行由集合匹配,背景色指示哪些行在一起,每个集合在白色和蓝色之间交替 向datagridview添加另一组行会将datagridview中所有先前行的背景色重置为白色,我不知道为什么要重载某个事件?我不知所措 这是我改变任何事物颜色的唯一实例,我没有任何类

我想给dataGridview中的某些行上色,并使用下面的代码成功地实现这一点,但是一旦我向dataGridview中添加更多行,它们都会重置为白色

这段代码检查在datagridview中创建它的前一个集合中的所有行,并将它们涂成浅蓝色。 这些行由集合匹配,背景色指示哪些行在一起,每个集合在白色和蓝色之间交替

向datagridview添加另一组行会将datagridview中所有先前行的背景色重置为白色,我不知道为什么要重载某个事件?我不知所措

这是我改变任何事物颜色的唯一实例,我没有任何类型的事件被覆盖

List<DataRow> dgvr = new List<DataRow>();

foreach(DataGridViewRow row in dataTaken1.SelectedRows)
{
    // Adding selected rows from the first datagridview to the set
}

foreach (DataGridViewRow row in dataTaken2.SelectedRows)
{
    // Adding selected rows from the second datagridview to the set
}

foreach(DataRow row in dgvr)
{
    dataTable1.Rows.Add(row); // This is the dataTable that is bound to the datagridview
    dataTable1.AcceptChanges();
    dataGridView1.Update();
}

if (bordercolor % 2 == 1)
{
    foreach (DataRow row in dgvr)
    {
        dataGridView1.Rows[dataTable1.Rows.IndexOf(row)].DefaultCellStyle.BackColor = Color.LightBlue;
    }
}

bordercolor++; // ensures that the next set has a different background color
List dgvr=new List();
foreach(dataTaken1.SelectedRows中的DataGridViewRow行)
{
//将第一个datagridview中的选定行添加到集合
}
foreach(dataTaken2.SelectedRows中的DataGridViewRow行)
{
//将第二个datagridview中的选定行添加到集合中
}
foreach(dgvr中的数据行)
{
dataTable1.Rows.Add(row);//这是绑定到datagridview的dataTable
dataTable1.AcceptChanges();
dataGridView1.Update();
}
如果(边框颜色%2==1)
{
foreach(dgvr中的数据行)
{
dataGridView1.Rows[dataTable1.Rows.IndexOf(row)].DefaultCellStyle.BackColor=Color.LightBlue;
}
}
bordercolor++;//确保下一组具有不同的背景色
编辑:这是一张图片,显示了我希望行的显示方式,在集合之间交替颜色,例如,灰色为奇数集合颜色,浅蓝色为偶数集合颜色


您可能希望检查此属性,而不是手动执行此操作:


谢谢您的帮助,虽然我需要一些不同背景颜色的不同数字集,但我会在其中包含更多代码,例如,有4行具有相同的背景颜色,然后有2行具有两组之间的交替背景颜色。除非我读错了你链接的内容,否则这只适用于两个链接之间的交替rows@polixu:如果(bordercolor%2==1)表示您有交替行。如果这不是您想要的,请解释,也许可以在您的问题中添加一些图片。根据您的建议,我添加了一个imgur链接,其中包含我出色的mspaint技能,以显示我希望如何显示我的行,对于If(bordercolor%2==1),bordercolor仅在再次调用该方法后才会递增。因此,在这个方法调用过程中,可以从2-5行开始的每个添加都将具有相同的颜色。再次感谢您的时间。@polixu:好的,谢谢您的更新。我进行了编辑,将图像直接包含在您的问题中。如果要设置自定义样式(固定、与行索引无关等),请尝试遍历单元格并在行上设置
Cell.style
,而不是
DefaultCellStyle
。非常感谢,它工作得非常好,我想我必须调用它来更新我对dataview所做的更改,删除它修复了我的问题。我还将实现您建议的关于迭代每行的建议。