C# 不需要的背景图像刷新

C# 不需要的背景图像刷新,c#,winforms,timer,refresh,transparency,C#,Winforms,Timer,Refresh,Transparency,我有一个窗体,它有一个背景图像集和一个作为计时器输出的标签。标签位于透明的表格布局面板中。不幸的是,随着计时器的每一次滴答声,背景都会明显地刷新。我怎样才能防止这种情况 这是在每次勾选时调用的函数 private void DisplayCountry() { if (sel.Count == 1) { country_out.Text = "No countries chosen.\nPlease select

我有一个窗体,它有一个背景图像集和一个作为计时器输出的标签。标签位于透明的表格布局面板中。不幸的是,随着计时器的每一次滴答声,背景都会明显地刷新。我怎样才能防止这种情况

这是在每次勾选时调用的函数

        private void DisplayCountry()
    {
        if (sel.Count == 1) 
        {
            country_out.Text = "No countries chosen.\nPlease select some.";
            timer_out.Visible = false;
        }
        else{
        timer_out.Text = String.Format("{0:00}", (sel[i].elapsed / 60)) + ":" + String.Format("{0:00}", (sel[i].elapsed % 60));
        if (sel[i] == "sent")
        {
            country_out.Text = "No countries left.";
            timer_out.Visible = false;
        }
        else
        {
            timer_out.Visible = true;
            country_out.ForeColor = Color.RoyalBlue;
            country_out.Text = sel[i].name;
            if (sel[i].elapsed > REDTIME)
                timer_out.ForeColor = Color.SteelBlue;
            else
                timer_out.ForeColor = Color.Tomato;
        }
        }
    }

设置前景色将刷新图像,即使它已经是该颜色。在设置它之前,检查它是否已经是那种颜色。

最终,我去掉了TableLayoutPanel,牺牲了一些对齐,并使用了一个PictureBox作为背景。PictureBox不会引起刷新问题,我想它已经为此进行了优化。感谢您的回复。

以下内容应嵌套在if语句中,以查看它们是否已设置为适当的值(每次命中时都会重置):timer\u out.Visible=true;country_out.ForeColor=Color.RoyalBlue;country_out.Text=sel[i]。名称;我在各自的if语句中嵌套了除了实际的计时器字符串更新(因为它必须每秒钟更新一次)之外的所有内容,注释掉了字体颜色的完全变化,我仍然遇到了相同的问题。如果还有其他想法,我将不胜感激。