我需要一些帮助才能解决这个问题。 我需要使用独特的颜色随机为网格视图中的每个记录着色。
示例:
假设我在网格视图中有十行,我想用不同的颜色随机地为每一行着色。
因此输出应该像第一行用红色染色,第二行用黄色等等。
如果我在gridview中占用100行,则所有100行都应该唯一着色。
你能帮忙吗? 提前致谢答案 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;
}