我想获得随机绘制的矩形排列在窗体上彼此相邻,但我的循环不工作,给我不想要的结果,任何帮助将不胜感激。如何将随机绘制的矩形垂直堆叠在一起?
我已经创建了一个创建随机矩形然后将它们存储在列表集合中的方法。
List<Rectangle> rectangleCollection = new List<Rectangle>();
void CreateRectangle()
{
int TallestRectangle = 0; ;
int PrevRecX = 0;
int PrevRecY = 0;
Pen pen = new Pen(Color.Black);
Graphics graphic = this.CreateGraphics();
foreach (Rectangle rect in rectangleCollection)
{
if (rect.Height > TallestRectangle)
TallestRectangle = rect.Height;
}
foreach (Rectangle rect in rectangleCollection)
{
if (PrevRecX + PrevRecY == 0)
{
graphic.DrawRectangle(pen, new Rectangle(rect.X, (TallestRectangle - rect.Height), rect.Width, rect.Height));
}
else
{
graphic.DrawRectangle(pen, new Rectangle((PrevRecX + PrevRecY), (TallestRectangle - rect.Height), rect.Width, rect.Height));
}
PrevRecX = rect.X;
PrevRecY = rect.Width;
}
}
void GetRandomRectangle()
{
Random ran = new Random();
int x = 0;
int y = 0;
int width = ran.Next(100, 500);
int height = ran.Next(200, 700);
Rectangle rec = new Rectangle(x, y, width, height);
rectangleCollection.Add(rec);
}
什么“令人失望的结果”?你得到了什么?这与你的期望有什么不同? – Corak 2013-04-25 07:18:55
如果问题是所有的矩形都是相同的大小:每次调用'GetRandomRectangle'时不要创建一个'Random'对象。有*一个*静态的,并使用它。 – Corak 2013-04-25 07:24:07
@Corak我的不想要的结果是我的矩形没有对齐,并且重叠,也请给我一个有一个静态随机对象并使用它的例子(对不起,我是一个新的)。 – TheJunior 2013-04-25 07:29:49