在VS2010中brushs,td,td1总是下面画红线,显示上下文没有此变量,该怎么改啊???private void Form1_Load(object sender, System.EventArgs e)
{
//点颜色数组的创建
brushs=new Brush[4];//实例颜色数组
//添加颜色到数组
brushs[0]=Brushes.Red;
brushs[1]=Brushes.Yellow;
brushs[2]=Brushes.Blue;
brushs[3]=Brushes.Green;
//颜色的数组创建
colors = new Color[4]{Color.Red,Color.Blue,Color.Yellow,Color.Green};
td=new Thread(new ThreadStart(ShowP));//创建线程对象确定随机生成点的方法
td1=new Thread(new ThreadStart(ShowL));//创建线程对象确定动态显示标签的方法
td.Start();
td1.Start();
}
//随机生成点的方法
private void ShowP()
{
Random rnd=new Random();
int r=0;//保存数组下标
int positionx=0;//保存点的X坐标
int positiony=0;//保存点的Y坐标
while(true)
{
Graphics g=this.CreateGraphics();
r=rnd.Next(0,4);
positionx=rnd.Next(0,this.Width);
positiony=rnd.Next(0,this.Height);
g.FillEllipse(brushs[r],positionx,positiony,8,8);//绘制点
Thread.Sleep(100);
}
} //动态显示标签的方法
private void ShowL()
{
Random rnd=new Random();
int x=this.label1.Left;//获取标签的原位x坐标
int y=this.label1.Top;//获取标签的原位y坐标
int colorIndex;
while(true)
{
for(int i=0;i<3;i++)
{
colorIndex=rnd.Next(0,4);
this.label1.Left+=1;
this.label1.Top+=1;
this.label1.ForeColor=colors[colorIndex];
Thread.Sleep(100);
}
this.label1.Left=x;
this.label1.Top=y;
} } private void Form1_Closed(object sender, System.EventArgs e)
{
td.Abort();
td1.Abort();
}
{
//点颜色数组的创建
brushs=new Brush[4];//实例颜色数组
//添加颜色到数组
brushs[0]=Brushes.Red;
brushs[1]=Brushes.Yellow;
brushs[2]=Brushes.Blue;
brushs[3]=Brushes.Green;
//颜色的数组创建
colors = new Color[4]{Color.Red,Color.Blue,Color.Yellow,Color.Green};
td=new Thread(new ThreadStart(ShowP));//创建线程对象确定随机生成点的方法
td1=new Thread(new ThreadStart(ShowL));//创建线程对象确定动态显示标签的方法
td.Start();
td1.Start();
}
//随机生成点的方法
private void ShowP()
{
Random rnd=new Random();
int r=0;//保存数组下标
int positionx=0;//保存点的X坐标
int positiony=0;//保存点的Y坐标
while(true)
{
Graphics g=this.CreateGraphics();
r=rnd.Next(0,4);
positionx=rnd.Next(0,this.Width);
positiony=rnd.Next(0,this.Height);
g.FillEllipse(brushs[r],positionx,positiony,8,8);//绘制点
Thread.Sleep(100);
}
} //动态显示标签的方法
private void ShowL()
{
Random rnd=new Random();
int x=this.label1.Left;//获取标签的原位x坐标
int y=this.label1.Top;//获取标签的原位y坐标
int colorIndex;
while(true)
{
for(int i=0;i<3;i++)
{
colorIndex=rnd.Next(0,4);
this.label1.Left+=1;
this.label1.Top+=1;
this.label1.ForeColor=colors[colorIndex];
Thread.Sleep(100);
}
this.label1.Left=x;
this.label1.Top=y;
} } private void Form1_Closed(object sender, System.EventArgs e)
{
td.Abort();
td1.Abort();
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货