c# - 一个接一个改变标签的颜色

标签 c# winforms

我有一个带有一些标签的窗口。我希望标签的 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/

相关文章:

javascript - 从 ASP.NET Razor 调用 JavaScript 函数

c# - 需要有关NullReferenceException的帮助

c# - 连接数据库时显示进度条

c# - 在 C# 中使用 Redis 的聊天客户端卡住。任何人都可以提出任何建议吗?

c# - 通过右键单击桌面或目录背景创建 Shell ContextMenu

c# - 无法创建类型为 'Anonymous type' 的常量值。在此上下文中仅支持原始类型或枚举类型

c# - MSDN 上 SimplePriorityQueue 示例中的严重错误

winforms - NumericUpDown ValueChanged 事件不适用于输入值

C# Windows 窗体 TreeView 在 LabelEdit 之后排序

.net - 基础设施 UltraGrid : how to remove default selection of first row