2010-12-13 26 views
0

私は下部にStatusStripを持つメインフォームを持っています。 このストリップには、最後の操作に関する情報を含むラベルが表示されます。 これは次のように行われます。StatusStripによって背景のちらつきが発生する

フォームコンストラクタで:

console.added += new EventHandler<Eventargs>(showlast); 

console.addedは、カスタムイベントである、それは何かがコンソールリストに追加されるたびに実行されます。 は次eventfunction:

private void showlast(object sender, EventArgs e) 
{ 
    statusStripLabel1.Text = console.clist.Last().ToString().Replace('\t',''); 
} 

CLISTは私のコンソールのエントリが含まれて静的クラスコンソールのlistelementている間。

これは、コードを含むmainformの上に他のフォームを表示すると、コンソールが更新されるたびに、バックグラウンドでメインフォームが一度更新されるたびに、再度読み込まれるようなエントリがコンソールに追加されます。メインフォームはフルスクリーンで、他のフォームのほとんどは、ツールウィンドウです。これは見逃すことはできません:)

ストリップが更新されたときにフォーム全体を新規に読み込まない方法はありますか? (それが理由ならば?)。他の賢明な私はストリップを削除する必要があります - もちろん、私はそれを保つしたいと思います:)

あなたの答えを先にありがとう!

1)FormDoubleBuffered = 'True'を設定します。

+0

StatusStripのResizeイベントが発生していないか確認してください。 –

答えて

0

あなたが試みることができるいくつかあります。

2)statusStripLabel1.Textを設定する前に、既存のテキストが同じでないかどうかを確認してください。

+0

あなたの素早い答えをありがとう - しかし、それはトリックをしなかった...私はDoubleBuffered前に知られていなかったと説明のサウンドこれには完璧だが、私はそれが動作しなかったと言った。今実際にちらつくものは、私のメインフォームの背景画像です...実際にはコンストラクタではなくload()メソッドではなく、何も変更していないようです。ああ、テキストが重複しているかどうかは、(ほとんど)同じではないので、うまくいきません。 – Lorenz

+0

私はポイント#2を置く理由は、同じ値を持つそのメソッドへの頻繁な呼び出しがあれば削除することでした。 – decyclone

関連する問題