本人最近才接触 C#编程,老师布置作业:使用 GDI+画圆,半径和颜色都要随机变化,圆要生成若干个。我参考了网上的许多资料,编写了如下代码,但是点击生成按钮,每次仍然只能生成一个圆形。各位会员能够帮我查找一下错误,或者提醒一下?万分感谢!
private void button1_Click(object sender, EventArgs e)
{
Graphics p = this.CreateGraphics();
PaintEventArgs pe = new PaintEventArgs(p, this.ClientRectangle);
panel1_Paint(this, pe);
p.Dispose();
}
private void panel1_Paint(object sender, PaintEventArgs e)
{
var list = new List<Rectangle>();
var rand = new Random();
var g = e.Graphics;
int N = 100; //圆的个数
for (int i = 0; i < 1000; i++) //限定最多试探次数,以免出现死循环
{
Random ran = new Random();
int wid = Screen.PrimaryScreen.WorkingArea.Width;
int hei = Screen.PrimaryScreen.WorkingArea.Height;
int R1 = ran.Next(0,1000);
int R2 = ran.Next(0,1000);
int Rnadkey = ran.Next(20, 800);
int Cran1 = ran.Next(0, 255);
int Cran2 = ran.Next(0, 255);
int Cran3 = ran.Next(0, 255);
Brush brush = new SolidBrush(Color.FromArgb(Cran1, Cran2, Cran3));//三原色
var rct = new Rectangle(R1, R2, Rnadkey, Rnadkey);
if ((rct.X + 2 * rct.Width) < wid && (rct.Y + 2 * rct.Width) < hei) //判定是否超出边界
{
list.Add(rct);
g.FillEllipse(brush, rct);
continue;
}
if (--N == 0) break;
}
}
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.