我有一个 DataGridView,有很多行,大约 3k。我需要根据具体值制作一些不同颜色(3 种颜色)的行。当我这样做时,两种颜色都没有问题,如果有 3 种颜色,问题就开始了。
滚动条在 1.img 中消失了,当我向下滚动时它又出现了。第二个问题是当我双击 DGV 以查看所选项目的详细信息时,应用程序没有响应。当有 2 种颜色时,不会出现任何问题。
这是 1.img
这是具有 2 种颜色的图像,您可以看到滚动条就位,当我双击时,没有“无响应”
这是我正在工作的代码:
private void CheckQuantity(DataGridViewRow dr)
{
var art = dr.DataBoundItem as DeArt;
if (art != null)
dr.DefaultCellStyle.BackColor = art.QuantityMin > art.QuantityRemaining ? Color.LightSalmon : Color.Empty;
}
private void CheckPVA(DataGridViewRow dr)
{
var art = dr.DataBoundItem as DeArt;
foreach (DeArtPVA v in PVAprice)
{
if (dr.DefaultCellStyle.BackColor == Color.LightSalmon && v.IdArt == art.Id)
{
dr.DefaultCellStyle.BackColor = Color.FromArgb(255, 120, 10);
break;
}
if (v.IdArt == art.Id)
dr.DefaultCellStyle.BackColor = Color.Yellow;
}
}
protected override void DGVWarehouse_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (e.ColumnIndex == 0)
{
CheckQuantity(dgrDataGridView.Rows[e.RowIndex]);
CheckPVA(dgrDataGridView.Rows[e.RowIndex]);
}
}
任何想法为什么?