【问题标题】:How to randomly color gridview(each row by a random color)如何随机着色gridview(每行随机颜色)
【发布时间】:2014-09-08 08:16:41
【问题描述】:

我需要一些帮助来解决这个任务。 我需要用独特的颜色随机为 gridview 中的每条记录着色。

例子:

假设如果我在 gridview 中有十行,我想用不同的颜色随机为每一行着色。

所以输出应该是第一行用红色着色,第二行用黄色着色,依此类推。

如果我在 gridview 中取 100 行,所有 100 行都应该是唯一的。

请大家帮忙。 在此先感谢

【问题讨论】:

  • 你有代码来改变GridView 中1 行的颜色吗?如果不是,我会先弄清楚这一点,然后再担心下一步。
  • 你可以使用这个javaScript库来生成随机颜色checkman.io/please

标签: c# css asp.net gridview random


【解决方案1】:

结合这两个问题:

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);
}

【讨论】:

    【解决方案2】:

    试试这个方法

        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;
        }
    

    【讨论】:

    • 这不符合要求。它被要求为每一行使用不同的颜色。所以没有重复。但是,您的代码允许重复。 “点击”也不是问题的一部分。
    • 您可以使用do-while 而不是带有条件中断的“无限”while 循环。无论如何,这应该可行。
    猜你喜欢
    • 2016-01-18
    • 2018-03-18
    • 2021-07-16
    • 1970-01-01
    • 1970-01-01
    • 2022-06-27
    • 2012-10-13
    • 2017-08-09
    • 2013-10-14
    相关资源
    最近更新 更多