2011-07-28 59 views
1

私はオーディオファイルの波形を持っています。波形の最後には、波形の最後の50ピクセル前の領域にテキストを表示したいと思っています。私は、波形の終わりから波形の終わりまでの50ピクセルからなる領域にのみツールチップを表示したい。私はいくつかのコードを書いていますが、それはツールチップのちらつきを引き起こします。つまり、マウスを動かすとツールチップが表示されたままです。ちらつきを止めるのを助けてください。 コードは次のとおりです。ツールチップのちらつき。

private void Waveform_MouseMove(object sender, MouseEventArgs e) 
{ 
    bool IsMatching = false; 
    ToolTip tooltip1 = new ToolTip(); 
    if (e.X <= this.Width && e.X >= this.Width - 50) 
    { 
     tooltip1.Show("end here", this, e.X, e.Y); 
     IsMatching = true; 
    } 

    if(!IsMatching) 
     tooltip1.Hide(this); 
} 

答えて

0

はあなたがするたびに新しいインスタンスを作成するときにtooltip1.Hide()を呼び出しているとき、マウスの移動、また、あなたが昔の道具を隠していないときは、新しいインスタンスを作成するのではなく、フォームでtooltip1を宣言しますヒント、あなたは新しく作成されたものを隠しています。 "既に表示されていません。"

DoubleBuffertrueという形式を設定することを検討してください。フリッカーを減らすために使用されます。

+0

これは、私のちらつきの問題を解決しました。ありがとう!しかし、今どこでもツールチップを波形上に保持しているので、そこにツールチップが表示されています。 50ピクセルの領域にのみ表示する必要があります。 – ngj