我有一个带有一些标签的窗口。我希望标签的 BackColor 根据我正在运行的一些测试而改变:
private void btnStartTest_Click(object sender, EventArgs e)
{
if(Tests.FirstTest())
{
this.lblFirstTest.BackColor = Color.LawnGreen;
}
else
{
this.lblFirstTest.BackColor = Color.Red;
}
if(Tests.SecondTest())
{
this.lblSecondTest.BackColor = Color.LawnGreen;
}
else
{
this.lblSecondTest.BackColor = Color.Red;
}
//and so on...
}
我希望标签一个接一个地改变颜色以显示进度。 但现在颜色变化只在方法结束时生效。所以所有标签同时改变颜色。
这是为什么?我可以更改什么以获得预期的效果?
最佳答案
执行 Refresh
在每次颜色变化后的表格上。这应该会强制更新和重绘视觉元素,从而产生预期的效果。这是不涉及线程的最简单的方法。
关于c# - 一个接一个改变标签的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36008788/