以下代碼非常簡單 - 它用隨機選擇的像素填充設計表面 - 沒有什麼特別的(現在忽略第二種方法中的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