0

背景画像が設定されたフォームと、タイマーの出力として機能するラベルがあります。ラベルは透明なテーブル レイアウト パネルにあります。残念ながら、タイマーが刻むたびに、背景が目に見えて更新されます。どうすればこれを防ぐことができますか?

これは、ティックごとに呼び出される関数です。

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

2 に答える 2

0

最終的に、TableLayoutPanel を取り除き、いくつかの配置を犠牲にして、PictureBox を背景として使用しました。PictureBox はリフレッシュの問題を引き起こしません。その目的のために最適化されていると思います。回答ありがとうございます。

于 2012-11-20T18:45:33.927 に答える
0

ForeColor を設定すると、既にその色であっても画像が更新されます。設定する前に、すでにその色になっているかどうかを確認してください。

于 2012-11-20T00:18:39.667 に答える