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

【C#】テキストボックスのパスワードマスク

C#における、テキストボックスに入力した時にマスクする方法、いわゆるパスワードマスクみたいなやつです。

【スポンサーリンク】

テキストボックスのパスワードマスク

テキストボックスのパスワードマスクはそれほど難しいことではありません。テキストボックスのPasswordChar プロパティに値を入れるだけです。

VisualStudio上のデザイナー画面にあるプロパティから簡単に出来ます。

上記画像ではとりあえず「●」をマスクの値として入れていますが、例えば「*」(アスタリスク)などでもマスクの値として使用することが出来ます。

もしくは、ソースコード上でPasswordChar プロパティに値を入れても効果は同じです。

textBoxInput.PasswordChar = '●';

どちらでも大丈夫ですが、この辺りは現場のルールに則って下さい。

【スポンサーリンク】

サンプルコード

パスワードマスクの超絶簡単なサンプルコードです。

上のテキストボックスに値を入れるとマスク化されるので、実行ボタンを押して、下のテキストボックスにマスク化された値を表示させます。

public partial class FormMask : Form
{
    public FormMask()
    {
        InitializeComponent();
    }

    private void BtnGetInputValue_Click(object sender, EventArgs e)
    {
        // マスクされた値を表示
        this.textBoxOutput.Text = this.textBoxInput.Text;
    }
}

実行ボタンクリックイベントの際に、上のテキストボックスの値を下のテキストボックスに入れてます。たったそれだけです。

PasswordChar プロパティには「●」を設定しています。

では起動して実行してみます。

試しに「にほん」と入力しました。ローマ字キーボード入力だと「nihon」なので、5文字。マスク化で「●●●●●」となっています。

実行ボタンを押して出力させると…

入力した「nihon」が出力されています。

【スポンサーリンク】

マスクされたらコピーは出来ない

ちなみに、マスクされた状態のテキストボックスはコピーすることが出来ません。

テキストボックスに値を入力し、全選択から右クリックしても、コピーできないことが分かります。

コピーできない

ショートカットキー(Ctrl + V)を使うと、警告が表示されます。

コピーできない

 

【スポンサーリンク】

その他カスタマイズ

ちょっとしたプロパティのカスタマイズです。

  • MaxLength プロパティ…入力文字数を制限できる
  • CharacterCasing プロパティ…入力文字の大小変換(Lower…全部小文字、Upper…全部大文字、Normal…そのまま)

標準コントロールのプロパティが出来るのはこれくらいで、例えば、最低文字数のチェック等は、テキストボックスのフォーカスが外れた後や、ボタン押した時に文字数チェックを実装する必要があります。

【スポンサーリンク】

参考リンク

TextBox.PasswordChar プロパティ (System.Windows.Forms)
単一行 TextBox コントロールでパスワードの文字をマスクするために使用される文字を取得または設定します。
【スポンサーリンク】

関連記事

【C#】超簡単!テキストボックスからフォーカスを外した時のイベント発生順番
C#における、テキストボックスからフォーカスを外した時のイベント(ロストフォーカス)の発生順番です。