如何随机颜色gridview(每行由一个随机颜色)

时间:2014-07-17 12:40:37

标签: c# css asp.net gridview random

我需要一些帮助才能解决这个问题。 我需要使用独特的颜色随机为网格视图中的每个记录着色。

示例:

假设我在网格视图中有十行,我想用不同的颜色随机地为每一行着色。

因此输出应该像第一行用红色染色,第二行用黄色等等。

如果我在gridview中占用100行,则所有100行都应该唯一着色。

你能帮忙吗? 提前致谢

2 个答案:

答案 0 :(得分:2)

结合这两个问题:

How to change row color in datagridview?

How to generate random color names in C#

foreach (DataGridViewRow row in dgv.Rows) 
{
    row.DefaultCellStyle.BackColor = getRandomColor();
}

private Color getRandomColor()
{

    Random randomGen = new Random();
    KnownColor[] names = (KnownColor[]) Enum.GetValues(typeof(KnownColor));
    KnownColor randomColorName = names[randomGen.Next(names.Length)];
    return  Color.FromKnownColor(randomColorName);
}

答案 1 :(得分:1)

试试这种方式

    List<string> UsedColors = new List<string>();

    public Form1()
    {
        InitializeComponent();
        foreach (DataGridViewRow row in dataGridView1.Rows)
            row.DefaultCellStyle.BackColor = RandColor();
    }

    private Color RandColor()
    {
        Random x = new Random();
                int r,g,b;
        Color myRgbColor = new Color();
        while(true)
        {
            r = x.Next(0,255);
            g = x.Next(0,255);
            b = x.Next(0,255);
            if(!UsedColors.Contains( r + "," + g + "," + b ))
            {
                UsedColors.Add( r + "," + g + "," + b );
                break;
            }
        }
        myRgbColor = Color.FromArgb( r , g , b );
        return myRgbColor;
    }