テキストボックスにパスワードを入力した時に表示する文字を設定する [C#] TextBox

Windowsのパスワードを入力するテキストボックスでは、入力した文字がどのような文字であるかを隠すため、「●」や「*」などの文字が表示されます。

Windowsのパスワード入力時に表示される文字

今回は、Windowsフォームアプリケーションでパスワードを入力するテキストボックスを配置した際に、パスワードを隠すための文字を設定する方法を紹介します。

本記事では、Visual Studioで作成したC#のWindowsフォームアプリケーションのプロジェクトに記述するコードを記載します。
Windowsフォームアプリケーションのプロジェクトを作成する方法については、以下の記事を参照してください。

Windowsフォームアプリケーションのプロジェクト(ソリューション)を作成する。[C#]
Visual StudioでC#のWindowsフォームアプリケーションのプロジェクト(ソリューション)を作成する方法を記載します。 ...

パスワードを入力した時に表示する文字の設定

テキストボックスの文字の揃え位置を設定するには、System.Windows.Forms名前空間にあるTextBoxクラスのPasswordCharプロパティ、またはUseSystemPasswordCharプロパティを使用します。

PasswordCharプロパティは、パスワードが入力された時に表示する文字を指定する場合に使用します。
UseSystemPasswordCharプロパティは、システムが持つ文字をパスワードが入力された時に表示する場合に使用します。

PasswordCharプロパティとUseSystemPasswordCharプロパティの設定は、フォームデザイナーのプロパティグリッドとソースコードのどちらでも行うことができます。

デザイナーのプロパティグリッドで設定する

フォームデザイナーを開きます。
フォームデザイナーを開いたら、プロパティウィンドウを表示します。
プロパティウィンドウが表示されていない場合は、メニューバーの「表示」メニューにある「プロパティ ウィンドウ」をクリックするかF4キーを押してください。
プロパティウィンドウが表示されたら、フォームに配置したテキストボックスをクリックして選択します。

フォームデザイナーのテキストボックスのプロパティグリッド
上記の画像のプロパティグリッドは項目別ではなくアルファベット順で表示しています。

PasswordCharプロパティ

デザイナーのプロパティグリッドにあるPasswordCharプロパティを選択します。
PasswordCharプロパティのテキストボックスにパスワードを入力した際に表示される文字を入力します。

デザイナーのプロパティグリッドでTextBoxクラスのPasswordCharプロパティを設定

UseSystemPasswordCharプロパティ

デザイナーのプロパティグリッドにあるUseSystemPasswordCharプロパティを選択します。
UseSystemPasswordCharプロパティのドロップダウンリストボックスのリストアイテムでTrueを選択します。

デザイナーのプロパティグリッドでTextBoxクラスのPasswordCharプロパティを設定

コードで設定する

フォームに「textBox1」という名前のテキストボックスを配置し、コードエディタを表示して以下のコードを入力します。

上記のコードはフォームのコンストラクタ内や、フォームのロードイベント(Form.Load)メソッド内、またはフォームのオンロード(OnLoad)メソッドをオーバーライドしたメソッド内に記述することで、フォームの起動時に設定することができます。

サンプルプログラム

テキストボックスにパスワードを入力するサンプルプログラムを作成します。

ユーザーインターフェース

フォームには、パスワード文字列を入力するテキストボックス(textBox1とtextBox2)と、設定を切り替えるボタン(button1とbutton2)を配置します。

テキストボックスのPasswordCharプロパティ、UseSystemPasswordCharプロパティ設定用のサンプルフォームのデザイン

ソースコード

ボタンがクリックされた時の処理を記述します。
button1がクリックされた時は、textBox1のPasswordCharプロパティの設定を切り替えます。
button2がクリックされた時は、textBox2のUseSystemPasswordCharプロパティの設定を切り替えます。

プログラムの実行

プロジェクトをビルドして実行(デバッグ)してフォームを表示します。

テキストボックスのPasswordCharプロパティ、UseSystemPasswordCharプロパティ設定用のサンプルフォームを起動

テキストボックスにパスワード文字列を入力します。

テキストボックスのPasswordCharプロパティ、UseSystemPasswordCharプロパティ設定用のサンプルフォームで文字列を入力

ボタンをクリックするとパスワードの代わりに表示する文字が表示されます。

テキストボックスのPasswordCharプロパティ、UseSystemPasswordCharプロパティ設定用のサンプルフォームでパスワード文字を表示

もう1度ボタンをクリックするとパスワードが表示されます。

テキストボックスのPasswordCharプロパティ、UseSystemPasswordCharプロパティ設定用のサンプルフォームでパスワード文字の設定を切り替える