此代码仅更改bg颜色一次。为了让它工作,我需要添加什么?
int i=0;
while (i<50)
{
button1.BackColor = Color.White;
Thread.Sleep(20);
button1.BackColor = Color.Black;
Thread.Sleep(20);
i++;
}
答案 0 :(得分:2)
即使你将sleep参数更改为更大的值,如果你在表单运行的同一个线程(主线程)上运行,你也不会看到任何改变,因为你阻塞了主线程;相反,你应该使用另一个线程或只使用Windows窗体的Timer组件。
int i;
public Form1()
{
InitializeComponent();
System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer();
timer.Interval = 200;
timer.Tick += new EventHandler(timer_Tick);
this.BackColor = Color.White;
timer.Start();
}
void timer_Tick(object sender, EventArgs e)
{
if (this.BackColor == Color.White)
this.BackColor = Color.Black;
else
this.BackColor = Color.White;
}