This question already has an answer here:
-
How to generate random color names in C#
14 answers
Do you know any method to generate a random Color (not a random Color Name!)?
I've already got one, but this one is'nt doing it correctly:
This only returns Green:
Random r = new Random();
BackColor = Color.FromArgb(r.Next(0, 256), r.Next(0, 256), 0);
This only returns Red:
Random r = new Random();
BackColor = Color.FromArgb(r.Next(0, 256), 0, 0);
This only returns Blue:
Random r = new Random();
BackColor = Color.FromArgb(0, 0, r.Next(0, 256));
I want my Code to return one, random Color, not only green/red/blue every time, as the above ones do.
How to solve this?
Any suggestion will be approved with joy!
Here's the answer I started posting before you deleted and then un-deleted your question:
public partial class Form1 : Form
{
private Random rnd = new Random();
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Color randomColor = Color.FromArgb(rnd.Next(256), rnd.Next(256), rnd.Next(256));
BackColor = randomColor;
}
}
The original version of your last method (pre-Edit) will return all different sorts of colors. I would be sure to use a single Random object rather than create a new one each time:
Random r = new Random();
private void button6_Click(object sender, EventArgs e)
{
pictureBox1.BackColor = Color.FromArgb(r.Next(0, 256),
r.Next(0, 256), r.Next(0, 256));
Console.WriteLine(pictureBox1.BackColor.ToString());
}
It produces all sorts of different colors:
Color [A=255, R=241, G=10, B=200]
Color [A=255, R=41, G=125, B=132]
Color [A=255, R=221, G=169, B=109]
Color [A=255, R=228, G=152, B=197]
Color [A=255, R=50, G=153, B=103]
Color [A=255, R=92, G=236, B=162]
Color [A=255, R=52, G=103, B=204]
Color [A=255, R=197, G=126, B=133]