コンボコントロールのテキストボックス部分に実装されている入力マスク機能の設定と活用について解説します。
コンボコントロールの書式は、Formatプロパティが参照するMaskFormatオブジェクトを使って設定します。このオブジェクトのPatternプロパティに以下の要素からなる文字列を設定することで、マスクを作成します。キーワードについては、次の「書式設定のキーワード」で説明します。
Patternプロパティを空の文字列(""またはString.Empty)に設定すると、書式が制限されず自由入力が可能になります。
なお、Patternプロパティでは、以下の表現が使用できます。
表現のタイプ | 説明 |
---|---|
8進数(ASCII) | ASCII文字を表現するときだけ使用します。「\040」のように、頭に0をつけて必ず3桁の数値で表現します。 |
16進数(ASCII) | ASCII文字を表現するときだけ使用します。「\x20」のように、\xに続いて必ず2桁の数値(頭に0を付ける)で表現します。 |
16進数(Unicode) | すべての文字を表現できます。「\u0020」のように、\uに続いて必ず4桁の数値(頭に0を付ける)で表現します。 |
キーワード | 下表で説明するキーワード(メタ文字)です。 |
文字 | キーワード以外の文字です。 |
' 電話番号を入力する書式を設定します。 GcComboBox1.Format.Pattern = "電話番号:\D{2,4}\(\D{2,4}\)\D{4}" ' 郵便番号を入力する書式を設定します。 GcComboBox2.Format.Pattern = "郵便番号:\D{3}-\D{4}"
// 電話番号を入力する書式を設定します。 GcComboBox1.Format.Pattern = "電話番号:\\D{2,4}\\(\\D{2,4}\\)\\D{4}"; // 郵便番号を入力する書式を設定します。 GcComboBox2.Format.Pattern = "郵便番号:\\D{3}-\\D{4}";
Imports GrapeCity.Web.Input.IMMask ' 電話番号を入力する書式を設定します。 GcComboBox1.Format = New MaskFormat("電話番号:\D{2,4}\(\D{2,4}\)\D{4}") ' 郵便番号を入力する書式を設定します。 GcComboBox2.Format = New MaskFormat("郵便番号:\D{3}-\D{4}")
using GrapeCity.Web.Input.IMMask; // 電話番号を入力する書式を設定します。 GcComboBox1.Format = new MaskFormat("電話番号:\\D{2,4}\\(\\D{2,4}\\)\\D{4}"); // 郵便番号を入力する書式を設定します。 GcComboBox2.Format = new MaskFormat("郵便番号:\\D{3}-\\D{4}");
半角 | 全角 | 説明 |
---|---|---|
\A | \A | 大文字のアルファベットを表します。[A-Z]または[A-Z]と同等です。 |
\a | \a | 子文字のアルファベットを表します。[a-z]または[a-z]と同等です。 |
\D | \D | 数字を表します。[0-9]または[0-9]と同等です。 |
\B | \B | 2進数を表します。[0-1]または[0-1]と同等です。 |
\X | \X | 16進数を表します。[0-9A-Fa-f]または[0-9A-Fa-f]と同等です。 |
\W | \W | すべての英数字を表します。[a-zA-Z_0-9]または[a-zA-Z_0-9]と同等です。 |
\K | \K | カタカナ(促音・拗音の小書き表記あり)を表します。 |
\N | \N | カタカナ(促音・拗音の小書き表記なし)を表します。 |
\H | - | すべての半角文字を表します。 |
- | \J | ひらがな(促音・拗音の小書き表記あり)を表します。 |
- | \G | ひらがな(促音・拗音の小書き表記なし)を表します。 |
- | \Z | すべての全角文字を表します。 |
- | \T | サロゲート ペア文字を表します。 |
- | \I | JIS X 0208で構成された文字を表します。 |
- | \M | Shift JISで構成された文字を表します。 |
- | \V | IVS(Ideographic Variation Sequence)文字を表します。 |
メタ文字 | 説明 |
---|---|
[] | []内の文字のどれか1つにマッチすることを表します。 |
^ | []内の先頭で使用し、その後に続く文字グループの補集合をあらわします。 |
- | []内で使用し、文字の範囲を指定します。 |
() | ()内の文字列のどれか1つにマッチすることを表します。 |
| | ()内で使用し、文字列間の区切り文字として機能します。 |
{n} | 直前のキーワードのn回の繰り返しを表します。 |
{n,} | 直前のキーワードのn回以上の繰り返しを表します。 |
{n,m} | 直前のキーワードのn回以上でm回以下の繰り返しを表します。 |
* | 直前のキーワードの0回以上の繰り返しを表します。{0,}と同等です。 |
+ | 直前のキーワードの1回以上の繰り返しを表します。{1,}と同等です。 |
? | 直前のキーワードの0回または1回の繰り返しを表します。{0,1}と同等です。 |
\(Chr(92)) | キーワードをリテラル文字として表示 |
書式 | 表記例 | 説明 |
---|---|---|
[] | A,a,ア,1,A,a,あ,ア,1 | すべての文字を表します。[\Z\H]と同等です。 |
[^] | どの文字も当てはまりません。[^\Z\H]と同等です。 | |
[^\W] | 1, A, a, あ | 全角の英数文字以外を表します。 |
[\D^123] | 4, 5, 6 | 1、2、3を除く半角の数字を表します。 |
[A-Z] | A, B, C, X, Y, Z | すべての全角大文字アルファベットを表します。\Aと同等です。 |
[\H^a-z] | A, Z, 1, 9 | 小文字のアルファベットを除くすべての半角文字を表します。 |
[\u0000-Z] | 0, 9, a, Z |
範囲設定のときに異種の表現が使えます。 Unicode文字 0000 から全角Zまでを表します。 |
[\u0000\Kaeiou0-9] | ア, a, o, 0 | 異種の表現を組み合わせることが可能です。 Unicode文字 0000、半角カタカナ、a、e、i、o、u、半角数字を表します。 |
(A1|B2|C3) | A1, B2, C3 | ()内の文字列のどれか1つにマッチすることを表します。 |
\D{3,} | 123, 12345, 999999 | 半角数字が3回以上の繰り返しを表します。 |
\\[0-9] | \0 | "\" をリテラル文字として扱う例です。 |
コンボコントロールには、リテラル文字列を設定し、表示させることができます。通常、入力マスクはキーワードとリテラル文字列を組み合わせて作成します。たとえば、郵便番号用の入力マスクを作成する場合は、次のように設定します。
GcComboBox1.Format.Pattern = "〒 \D{3}-\D{4}"
GcComboBox1.Format.Pattern = "〒 \\D{3}-\\D{4}";
リテラル文字列として指定できるのは、上述したキーワード以外の文字列です。ただし、リテラル文字列のみをFormatプロパティに設定することはできません。また、キーワードをリテラル文字として表示させるには、キーワードの前に円記号(\、Chr(92))を付けます。円記号を表示させる場合は \\ とします。
また、フィールドとは、リテラル文字列で区切られた入力領域の単位です。リテラル文字列の領域はフィールドではありません。たとえば、Format.Patternプロパティに"〒 \D{3}-\D{4}"と設定した場合、2つのフィールドが作成されたことになり、左から順に\D{3}が第1フィールド、\D{4}が第2フィールドとなります。なお、Formatプロパティに空の文字列を設定すると、フィールド数は1となります。