【VB.NET】テキストボックスに入力できる文字数を制限するには?

訪問して頂きありがとうございます。まさふくろーです。

この記事では、テキストボックスに入力できる文字数を制限する方法をご紹介します。

テキストボックスに入力できる文字数を制限する

使用するプロパティ

MaxLengthプロパティ

解説
 
 
テキストボックスに入力できる文字数を制限するには、MaxLengthプロパティを使用します。
MaxLengthプロパティには、入力可能な文字数を指定します。
MaxLengthプロパティで設定した文字数を超える文字は入力できません。

設定手順

おおまかな流れ

Step.1
テキストボックスを選択

Step.2
MaxLengthプロパティの設定

詳細

Step.1 テキストボックスを選択

「テキストボックス」コントロールを選択します。

 

Step.2 MaxLengthプロパティの設定

メニューバーの①「表示」タブをクリック⇒②「プロパティウィンドウ」を選択します。

プロパティウィンドウの「MaxLength」欄に「入力可能な文字数」を設定します。

 

すると、設定した文字数を超える文字は入力できないようになります。

 

プログラムでの設定

MaxLengthを設定するサンプルプログラム

2 画面起動時に以下処理を行う。
4 テキストボックス1に入力可能な文字数を10文字に設定する。

バイト数で制限するには

MaxLengthプロパティは、全角(2バイト)、半角(1バイト)に関係なく文字数で制限をかけます。

バイト数で制限をかけるには、プログラムで制御する必要があります。

サンプルプログラムは以下になります。

バイト数で制限をかけるサンプルプログラム

名前空間のインポート

2 文字エンコーディングを使うため、System.Text名前空間をインポート。

キーボード入力時の制御

2 キーボード入力時に以下処理を行う。
7 テキストボックスに入力した値を取得し、変数「stTarget 」に格納。
8 変数「stTarget 」の値をShift_JIS変換し、バイト型配列の変数「btBytes 」に格納。
10  テキストボックスに入力したバイト数が10バイト以上の場合、以下処理を行う。
11 「BackSpace」キーが押された場合は、以下「12」行目の処理を行う。
12 テキストボックスへの入力を許可する。
13 「BackSpace」キー以外のキーが押された場合は、以下「14」行目の処理を行う。
14 テキストボックスへの入力を禁止する。

コピー&ペースト時の制御

2 テキストボックスから別の項目へフォーカスが移動した時に以下処理を行う。
8 テキストボックスに入力された値を取得し、変数「stTarget 」に格納。
9 変数「stTarget 」の値をShift_JIS変換し、バイト型配列の変数「btBytes 」に格納。
11 テキストボックスに入力されたバイト数が10バイト以上の場合、以下処理を行う。
13 テキストボックスに入力された文字列から10バイト分の文字列を抜き出し、変数「MidBStr」に格納。
14 「13」行目で抜き出した10バイト分の文字列を、テキストボックス1に設定する。

関連記事

最後まで読んでいただき、ありがとうございました!

本のまとめ関連記事はこちら