Мне нужна помощь в решении этой задачи. Мне нужно покрасить каждую запись в gridview случайным образом с уникальным цветом.
Пример:
Предположим, что если у меня есть десять строк в gridview, я хочу, чтобы каждая строка была случайным образом окрашена в другой цвет.
Таким образом, результат должен быть как первый ряд, окрашенный в красный и второй строки желтым цветом и так далее.
Если я возьму 100 строк в gridview, все 100 строк должны быть окрашены однозначно.
Можете ли вы, ребята, помочь. заранее спасибо
Объедините эти два вопроса:
Как изменить цвет строки в datagridview?
Как генерировать случайные имена цветов в С#
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);
}
Попробуйте этот путь
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;
}
GridView
? Если нет, то я бы начал с выяснения этого, а затем беспокоился о следующем шаге после.