日期:2014-05-18  浏览次数:20836 次

如何用timer控制实现双重循环..
例如用双重循环控制着色变化:

  for(int x=0;x<256;x++)
  for (int y = 0; y < 256; y++)
  {
  textBox1.BackColor = Color.FromArgb(0, x, y);
  }
但是这样不能用时间控循环的速度.
于是改用timer控制,如何实现呢?


  private void BianSeTime_Tick(object sender, EventArgs e)
  {
  int x = 0, y = 255;
  textBox1.BackColor = Color.FromArgb(0, x++,y--);
     }
这只是一循环....

------解决方案--------------------
C# code

int x = 0;
int y = 0;
private void BianSeTime_Tick(object sender, EventArgs e) 
{
    textBox1.BackColor = Color.FromArgb(0, x, y); 
    y++;
    if(y == 256)
    {
        y = 0;
        x++;
    }
    if(x == 256)
    {
        x = 0;
        y = 0;
    }
}

------解决方案--------------------
循环过程中Sleep一下不就可以控制循环速度了吗?

for(int x=0;x <256;x++) 
{
for (int y = 0; y < 256; y++) 

textBox1.BackColor = Color.FromArgb(0, x, y); 
System.Threading.Thread.Sleep(5000); //停半秒,时间根据你而定

System.Threading.Thread.Sleep(1000); //停1秒,时间根据你而定
}