以下代码非常简单 - 它用随机选择的像素填充设计表面 - 没有什么特别的(现在忽略第二种方法中的XXXXXXX)。C#绘图,奇怪的行为
private void PaintBackground()
{
Random rnd = new Random();
Bitmap b = new Bitmap(this.Width, this.Height);
for (int vertical = 0; vertical < this.Height; vertical++)
{
for (int horizontal = 0; horizontal < this.Width; horizontal++)
{
Color randomColour = GetRandomColor(rnd);
b.SetPixel(horizontal, vertical, randomColour);
}
}
Graphics g = this.CreateGraphics();
g.DrawImage(b, new Point(0, 0));
}
public Color GetRandomColor(Random rnd)
{
XXXXXXXXXXXXXXXX
byte r = Convert.ToByte(rnd.Next(0, 255));
byte g = Convert.ToByte(rnd.Next(0, 255));
byte b = Convert.ToByte(rnd.Next(0, 255));
return Color.FromArgb(255, r, g, b);
}
我的问题是这样的......
如果更换与XXXXXXXXX “随机RND =新的随机();”测试图案完全变成相同颜色的水平条,因此不是随机的。
有人向我解释为什么这是?
至于我可以告诉在第二次尝试,唯一的区别是,GetRandomColour方法创建并使用Random类的新实例,但我不明白如何使单杠..
我太慢了,删除了我的文章并给了你+1 – jdehaan 2010-01-19 12:59:02