Windowsフォームアプリケーションで使用するテキストボックスに入力できる文字を制限し、大文字のみ、または小文字のみにする方法を紹介します。
本記事では、Visual Studioで作成したC#のWindowsフォームアプリケーションのプロジェクトに記述するコードを記載します。
Windowsフォームアプリケーションのプロジェクトを作成する方法については、以下の記事を参照してください。
目次
入力できる文字の種類の設定
テキストボックスに入力できる文字を大文字のみ、または小文字のみに制限するには、System.Windows.Forms名前空間にあるTextBoxクラスのCharacterCasingプロパティを使用します。
CharacterCasingプロパティには、System.Windows.Forms名前空間のCharacterCasing列挙型のいずれかのフィールドを設定します。
CharacterCasing列挙型のフィールド一覧
フィールド | 値 | 説明 |
---|---|---|
Normal | 0 | 入力制限は行わず、入力された文字は大文字と小文字はそのまま表示されます。 |
Upper | 1 | 入力できる文字を大文字のみに制限し、入力された文字を大文字に変換して表示されます。 |
Lower | 2 | 入力できる文字を小文字のみに制限し、入力された文字を小文字に変換して表示されます。 |
CharacterCasingプロパティの値は、フォームデザイナーのプロパティグリッド、またはコードで設定することができます。
デザイナーのプロパティグリッドで設定する
フォームデザイナーを開きます。
フォームデザイナーを開いたら、プロパティウィンドウを表示します。
プロパティウィンドウが表示されていない場合は、メニューバーの「表示」メニューにある「プロパティ ウィンドウ」をクリックするかF4キーを押してください。
プロパティウィンドウが表示されたら、フォームに配置したテキストボックスをクリックして選択します。
上記の画像のプロパティグリッドは項目別ではなくアルファベット順で表示しています。
デザイナーのプロパティグリッドにあるCharacterCasingプロパティを選択します。
CharacterCasingプロパティのドロップダウンリストボックスのリストアイテムから、設定するCharacterCasing列挙型のフィールドを選択します。
コードで設定する
フォームに「textBox1」という名前のテキストボックスを配置し、コードエディタを表示して以下のコードを入力します。
1 2 |
// 大文字のみ入力可(入力された文字を大文字に変換する) this.textBox1.CharacterCasing = CharacterCasing.Upper; |
1 2 |
// 小文字のみ入力可(入力された文字を小文字に変換する) this.textBox1.CharacterCasing = CharacterCasing.Lower; |
1 2 |
// 入力制限なし(入力された文字を変換しない) this.textBox1.CharacterCasing = CharacterCasing.Normal; |
上記のコードはフォームのコンストラクタ内や、フォームのロードイベント(Form.Load)メソッド内、またはフォームのオンロード(OnLoad)メソッドをオーバーライドしたメソッド内に記述することで、フォームの起動時に設定することができます。
サンプルプログラム
テキストボックスに入力できる文字を制限するサンプルプログラムを作成します。
ユーザーインターフェース
フォームには、文字列を入力するテキストボックス(textBox1)と、「大文字のみ (Upper)」「小文字のみ (Lower)」、「大文字と小文字の両方 (Normal)」を選択するラジオボタン(radioButton1~3)を配置します。
ソースコード
ラジオボタンの選択変更時に文字の種類を設定する処理を記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
using System; using System.Windows.Forms; namespace WindowsFormsApp1 { public partial class Form1 : Form { // コンストラクタ public Form1() { InitializeComponent(); // テキストボックスのIMEモードを無効に設定 this.textBox1.ImeMode = ImeMode.Disable; // ラジオボタンの選択変更時のイベントを設定 this.radioButton1.CheckedChanged += new EventHandler(this.RadioButton_CheckedChanged); this.radioButton2.CheckedChanged += new EventHandler(this.RadioButton_CheckedChanged); this.radioButton3.CheckedChanged += new EventHandler(this.RadioButton_CheckedChanged); // 大文字と小文字の両方 (Normal) を初期選択 this.radioButton3.Checked = true; } // ラジオボタンの選択変更時のイベントメソッド private void RadioButton_CheckedChanged(object sender, EventArgs e) { try { // 選択された文字の種類を設定する // デフォルト(既定値)は大文字小文字の区別なし CharacterCasing characterCasing = CharacterCasing.Normal; if (this.radioButton1.Checked) { // 大文字のみ characterCasing = CharacterCasing.Upper; } else if (this.radioButton2.Checked) { // 小文字のみ characterCasing = CharacterCasing.Lower; } // テキストボックスに文字の種類を設定 this.textBox1.CharacterCasing = characterCasing; } catch (Exception ex) { MessageBox.Show(ex.Message); } } } } |
プログラムの実行
プロジェクトをビルドして実行(デバッグ)してフォームを表示します。
テキストボックスにアルファベット文字を入力します。
ラジオボタンの選択を切り替えて、文字の種類を確認します。