gpt4 book ai didi

C# For Loop 喜怒无常

转载 作者:太空宇宙 更新时间:2023-11-03 21:34:27 25 4
gpt4 key购买 nike

出于某种原因,除非调用 MessageBox.Show,否则循环只会在面板上打印 1-3 个圆圈。它应该打印用户输入到文本框中的圆圈数。我不明白为什么调用 MessageBox 很重要,如果不调用 Box,为什么循环决定不做超过几个圈。它应该完成所要求的全部循环。

    private void button2_Click(object sender, EventArgs e)
{
if (NumberCirclesText.Text != "" && Convert.ToInt32(NumberCirclesText.Text) < 100)
for (int x = 0; x < Convert.ToInt32(NumberCirclesText.Text); x++)

{
int y = x + 1;

Random myrandom = new Random();
int xcoord;
int ycoord;
ycoord = myrandom.Next(DrawSpace.Width);
xcoord = myrandom.Next(DrawSpace.Height);
int r = myrandom.Next(255);

SolidBrush mybrush = new SolidBrush(Color.FromArgb(myrandom.Next(255), myrandom.Next(255), myrandom.Next(255)));
System.Drawing.Graphics graphics = DrawSpace.CreateGraphics();
System.Drawing.Rectangle rectangle = new System.Drawing.Rectangle(ycoord, xcoord, 30, 30);
graphics.DrawEllipse(System.Drawing.Pens.Transparent, rectangle);
graphics.FillEllipse(mybrush, rectangle);

//MessageBox.Show("There are " + y + " circles on the panel.");
NoOfCircles.Text = y.ToString();

}


}

最佳答案

消息框是一个转移注意力的问题:事实上,消息框会导致事情正常运行的重要延迟。您在每次迭代中创建一个新的 Random 对象,但每次迭代都非常快,对象将产生相同的“随机”序列。使用相同的“随机”输入,圆圈(大部分)出现重叠。

那么简单的解决方法就是在循环外声明并创建 Random 对象。

关于C# For Loop 喜怒无常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22440032/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com