2009-07-16 22 views
0

ユーザーの入力を検証したいと思いますが、標準のWindows Forms TextBoxコントロールの背景色を変更して検証エラーを通知したいとします。Windowsフォームのテキストボックス - フェードイン/フェードアウトの背景色

しかし、色をすぐに変更する代わりに、私は退色効果を使用したいと思います。

簡単な方法はありますか?

編集: Infragisticsコントロールにもアクセスできますが、違いがあれば分かりません。

答えて

2

これはC#/ .NETであると仮定して、独自のユーザーコントロールを作成するのがこの問題の適切な解決策です。代わりにUserControl継承のため、あなたのコントロールではなくTextBoxから継承する必要があります - これは普通のTextBoxのようなあなたのコントロールの外観と行動を行います、そしてあなたは、フェージング効果を処理するコードを追加することができます。

public partial class MyCustomTextbox : Textbox 
{ 

} 

フェージングを行うには、あなたは徐々にこのような機能をBackColorを変更するには、タイマーのいくつかの並べ替えを作成する必要があるだろう:

function FadeBackground(float progress) 
{ 
    Color color = Color.FromArgb(255, (int)((1 - progress) * 255), 
     (int)((1 - progress) * 255)); 
    base.BackColor = color; 
} 

パラメータprogress = 0、これは白い背景が生成されます、そしてときprogress = 1これがいっぱいになるとき赤。

+0

はい、私はあなたに似ている解決策について考えましたが、アプリケーションパフォーマンスには良いかどうかはわかりませんが、しかし、それをチェックします。 Thxのヘルプ。 – Jarek

+2

タイマーを必要なときにのみ実行すると、60 FPSに固定されているため、パフォーマンスの低下に気付かないでください。 –

+1

このような20個のコントロールは、現代のコンピュータに似たもののWinFormsアプリケーションでは問題ありません。 .Net for Windows 3.1はありません。 :) – MusiGenesis