[Tips][MaskedTextBox] マスクを設定する

今回より MaskedTextBoxに関するTipsを紹介していきます。


MaskedTextBoxコントロールにマスクを設定するには、デザイナから行うのが一番簡単です。

マスク設定用の「定型入力」ダイアログを表示するには、フォームに貼り付けられたMaskedTextBoxから「マスクの設定…」をクリックするか、プロパティウィンドウの「Mask」で[…]ボタンをクリックします。

「定型入力」ダイアログには、よく使用されるマスクの一覧が表示されており、目的に合うものがあれば選択して[OK]ボタンをクリックします。

もしも、目的に合うマスクがない場合には<カスタム>を選択して、独自のマスクを作成する必要があります。

マスクは、下記表に示す文字の組み合わせで作成します。

マスク設定に使用できる文字一覧
マスク要素 説明
0 数字 (省略不可)。この要素は、0 ~ 9 の 1 桁の数字を受け入れます。
9 数字または空白 (省略可)。
# 数字または空白 (省略可)。マスク内のこの位置を空白にすると、Text プロパティで空白として描画されます。正符号 (+) およびマイナス記号 (-) を使用できます。
L 文字 (省略不可)。入力を ASCII 文字 a ~ z および A ~ Z に制限します。このマスク要素は、正規表現の [a-zA-Z] と等価です。
? 文字 (省略可)。入力を ASCII 文字 a ~ z および A ~ Z に制限します。このマスク要素は、正規表現の [a-zA-Z]? と等価です。
& 文字 (省略不可)。AsciiOnly プロパティが true に設定されている場合、この要素は “L” 要素と同じように動作します。
C 文字 (省略可)。制御文字以外の文字を入力できます。AsciiOnly プロパティが true に設定されている場合、この要素は “?” 要素と同じように動作します。
A 英数字 (省略可)。AsciiOnly プロパティが true に設定されている場合、受け入れられる文字は、ASCII 文字 a ~ z および A ~ Z だけです。
a 英数字 (省略可)。AsciiOnly プロパティが true に設定されている場合、受け入れられる文字は、ASCII 文字 a ~ z および A ~ Z だけです。
. 小数点のプレースホルダ。使用される実際の表示文字は、コントロールの FormatProvider プロパティで決定される書式プロバイダに適した小数点のプレースホルダになります。
, 桁区切りのプレースホルダ。使用される実際の表示文字は、コントロールの FormatProvider プロパティで決定される書式プロバイダに適した桁区切りのプレースホルダになります
: 時刻の区切り記号。使用される実際の表示文字は、コントロールの FormatProvider プロパティで決定される書式プロバイダに適した時刻のプレースホルダになります。
/ 日付の区切り記号。使用される実際の表示文字は、コントロールの FormatProvider プロパティで決定される書式プロバイダに適した日付のプレースホルダになります。
$ 通貨記号。表示される実際の文字は、コントロールの FormatProvider プロパティで決定される書式プロバイダに適した通貨記号になります。
< 下にシフトします。後続のすべての文字を小文字に変換します。
> 上にシフトします。後続のすべての文字を大文字に変換します。
| 前に行われた上または下へのシフトを無効にします。
\ エスケープ。マスク文字をエスケープして、リテラルに変換します。”\\” は、円記号のエスケープ シーケンスです。
その他のすべての文字 リテラル。マスク要素以外の文字はすべて、MaskedTextBox 内にそのまま表示されます。リテラルは実行時のマスクの静的な位置を常に占有するため、ユーザーが移動または削除することはできません。

「定型入力」ダイアログではなく、コードからマスクを設定する場合にはMaskプロパティを使用します。

下記はコードからマスクを設定する例です。
携帯番号の入力を想定しています。

VBの例

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    'マスクを設定する
    MaskedTextBox1.Mask = "000-0000-0000"
End Sub

C#の例

private void Form1_Load(object sender, EventArgs e)
{
    // マスクを設定する
    maskedTextBox1.Text = "000-0000-0000";
}

“[Tips][MaskedTextBox] マスクを設定する” への1件の返信

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です