问题 随机绘制200条线

msasan1367

新成员
已加入
2011年5月26日
留言内容
1
编程经验
Beginner
如何创建200条随机宽度的线?
我的意思是如下图所示:
Form.jpg-4shared.com-照片共享-下载图像

我有只使用按钮的代码,但是运行C#程序时需要创建200行:

private void button1_Click(对象发送者,EventArgs e)
{
随机RandomClass = new Random();
int height = 1;

for (int i = 0; i < 200; i++)
{
height += 2;
int RandomNumber = RandomClass.Next(11,111);
System.Drawing.Graphics my_graph = this.CreateGraphics();
点my_point_one =新的System.Drawing.Point(10,2 *(i + 1));
点my_point_two =新的System.Drawing.Point(RandomNumber,2 *(i + 1));
my_graph.DrawLine(System.Drawing.Pens.Blue,my_point_one,my_point_two);
my_graph.Dispose();
}
}

我该怎么做?
 

浪费

新成员
已加入
2011年4月23日
留言内容
1
编程经验
3-5
捷径

好吧,我认为问题是您正在尝试在尚未绘制的表单上绘制某些内容。因此,让它完成绘制本身,我们就可以在上面绘制一些东西。

在这种情况下,我使用了线程。

C#:
private void Form1_Load(object sender, EventArgs e)
        {
            Thread T1 = new Thread(draw);
            T1.Start();
        }

        private void draw()
        {

            Thread.Sleep(400);
          随机RandomClass = new Random(); 
int height = 1; 

for (int i = 0; i<= 200; i++) 
{ 
height += 2; 
int RandomNumber = RandomClass.Next(11,111); 
System.Drawing.Graphics my_graph = this.CreateGraphics(); 
点my_point_one =新的System.Drawing.Point(10,2 *(i + 1)); 
点my_point_two =新的System.Drawing.Point(RandomNumber,2 *(i + 1)); 
my_graph.DrawLine(System.Drawing.Pens.Blue,my_point_one,my_point_two); 
my_graph.Dispose(); 
}
 }
 }


我所做的是在不同线程上的load方法中调用draw方法,线程T1会休眠400毫秒,以便主线程可以完成绘制表单。 T1可以在表单上画线。

希望这可以帮助
 
最佳 底部