不需要的BackgroundImage刷新

时间:2012-11-19 23:26:32

标签: c# winforms timer refresh transparency

我有一个带有背景图像集的表单和一个作为计时器输出的标签。标签位于透明表格布局面板中。不幸的是,随着计时器的每个滴答,背景明显刷新。我该如何防止这种情况?

这是每次打勾都会调用的函数。

        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;
        }
        }
    }

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

最终,我摆脱了TableLayoutPanel,牺牲了一些路线,并使用PictureBox作为背景。 PictureBox没有引起任何令人耳目一新的麻烦,我猜它已经针对这个目的进行了优化。感谢您的回复。