C#における、テキストボックスの背景色・文字色を変更する方法です。
テキストボックスの背景色・文字色を変更する
C#において、テキストボックスの色の変更は簡単に出来ます。VisualStudioのデザイン画面上から、プロパティのBackColorプロパティを修正しても出来ますが、ソースコード上でするのが一般的です。
例えば、テキストボックスとボタンが用意されている画面で、テキストボックスに何も入力しないまま、ボタンをクリックすると、メッセージが出て、テキストボックスの背景色が赤くなる…という具合で、テキストボックスのプロパティをソースコード上で変更します。
例として、テキストボックスとボタンだけの簡単な画面を作りました。
尚、テキストボックスのオブジェクト名は「txtTarget」、ボタンのオブジェクト名は「cmdCollarChange」としています。
背景色の変更
テキストボックスの背景色を変更する簡単なコードを書いてみましょう。
仕様は、
- テキストボックスの入力文字数が5文字→背景色を赤
- テキストボックスの入力文字数が5文字以外→背景色をシステムカラー
の2つです。
テキストボックスの背景色を変更する場合、BackColorプロパティに値をセットします。
private void cmdCollarChange_Click(object sender, EventArgs e) { try { int txtLength = this.txtTarget.Text.Length; if (txtLength == 5) { //5文字の時は、背景色を赤に変更 this.txtTarget.BackColor = Color.Red; } else { //5文字以外の時は、背景色をデフォルトに変更 this.txtTarget.BackColor = SystemColors.Window; } } catch(Exception ex) { MessageBox.Show(ex.Message ,"エラー" ,MessageBoxButtons.OK ,MessageBoxIcon.Error); } }
ボタンのクリックイベント内に、上記のソースコードを記載して、実行してみます。
まずは5文字を入力して、ボタンをクリック。
見事に背景色が赤色に変わりました。
5文字以外、例えば6文字を入力して実行ボタンをクリックすると、背景色がシステムカラーになります。
上記のサンプルコードでは簡単な条件分岐でしたが、条件分岐を増やしてもOKです。
文字色の変更
テキストボックスの背景色を変更する簡単なコードを書いてみましょう。
仕様は、
- テキストボックスの入力文字数が10文字→文字色を赤
- テキストボックスの入力文字数が10文字以外→文字色をデフォルトカラー
の2つです。
テキストボックスの文字色を変更する場合、ForeColorプロパティに値をセットします。
private void cmdCollarChange_Click(object sender, EventArgs e) { try { int txtLength = this.txtTarget.Text.Length; if (txtLength == 10) { //10文字の時は、文字色を赤に変更 this.txtTarget.ForeColor = Color.Red; } else { //10文字以外の時は、文字色をデフォルトに変更 this.txtTarget.ForeColor = SystemColors.WindowText; } } catch(Exception ex) { MessageBox.Show(ex.Message ,"エラー" ,MessageBoxButtons.OK ,MessageBoxIcon.Error); } }
ボタンのクリックイベント内に、上記のソースコードを記載して、実行してみます。
まずは10文字を入力して、ボタンをクリック。
見事に文字色が赤色に変わりました。
今度は10文字以外、例えば9文字を入力して実行ボタンをクリックすると、文字色がデフォルトのカラーになります。
とても簡単でしたね。
参考サイト
TextBox Class (System.Windows.Forms) | Microsoft Docs
TextBoxBase.BackColor Property (System.Windows.Forms) | Microsoft Docs
TextBoxBase.ForeColor Property (System.Windows.Forms) | Microsoft Docs
関連記事
.