ユーザーの入力を検証し、標準のWindows フォームTextBox コントロールの背景色の変更による検証エラーについてユーザーに通知したいと考えています。
しかし、すぐに色を変える代わりに、退色効果を使用したいと思います。
それを行う簡単な方法はありますか?
編集: Infragistics コントロールにもアクセスできますが、違いがあるかどうかはわかりません。
これが 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 の場合は完全な赤になります。