記事内に広告が含まれています。

【C#】テキストボックスの背景色・文字色を変更する

C#における、テキストボックスの背景色・文字色を変更する方法です。

【スポンサーリンク】

テキストボックスの背景色・文字色を変更する

C#において、テキストボックスの色の変更は簡単に出来ます。VisualStudioのデザイン画面上から、プロパティのBackColorプロパティを修正しても出来ますが、ソースコード上でするのが一般的です。

例えば、テキストボックスとボタンが用意されている画面で、テキストボックスに何も入力しないまま、ボタンをクリックすると、メッセージが出て、テキストボックスの背景色が赤くなる…という具合で、テキストボックスのプロパティをソースコード上で変更します。

例として、テキストボックスとボタンだけの簡単な画面を作りました。

f:id:neko_britannia:20211013175317j:plain

尚、テキストボックスのオブジェクト名は「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文字を入力して、ボタンをクリック。

f:id:neko_britannia:20211013174844j:plain

f:id:neko_britannia:20211013174857j:plain

見事に背景色が赤色に変わりました。

5文字以外、例えば6文字を入力して実行ボタンをクリックすると、背景色がシステムカラーになります。

f:id:neko_britannia:20211013175021j:plain

f:id:neko_britannia:20211013175032j:plain

上記のサンプルコードでは簡単な条件分岐でしたが、条件分岐を増やしても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文字を入力して、ボタンをクリック。

f:id:neko_britannia:20211013180057j:plain

f:id:neko_britannia:20211013180107j:plain

見事に文字色が赤色に変わりました。

今度は10文字以外、例えば9文字を入力して実行ボタンをクリックすると、文字色がデフォルトのカラーになります。

f:id:neko_britannia:20211013180236j:plain

f:id:neko_britannia:20211013180242j:plain

とても簡単でしたね。

【スポンサーリンク】

参考サイト

TextBox Class (System.Windows.Forms) | Microsoft Docs

TextBoxBase.BackColor Property (System.Windows.Forms) | Microsoft Docs

TextBoxBase.ForeColor Property (System.Windows.Forms) | Microsoft Docs

【スポンサーリンク】

関連記事

【C#】ラベルの背景色・文字色を変更する
C#でラベルの背景色・文字色を変更する方法です。

.