The MaskedTextBox supports a set of built-in masks and also enables you to set your own custom mask rules and implement static symbols (literals) in the mask pattern.
The MaskedTextBox supports the following built-in mask rules:
0—Requires a digit (0-9).
9—Requires a digit (0-9) or a space.
#—Requires a digit (0-9), space, plus (+), or minus (-) sign.
L—Requires a letter (a-Z).
?—Requires a letter (a-Z) or a space.
A—Requires an alphanumeric (0-9, a-Z).
a—Requires an alphanumeric (0-9, a-Z) or a space.
&—Requires a character (excluding space).
C—Requires a character or a space.
- If any of the built-in masks accepts spaces, set the
promptPlaceholderto a character that is not allowed by the mask.
- To escape a mask rule, use the slash (
\) character. An escaped rule turns into a literal.
The MaskedTextBox also allows you to define custom mask rules by setting the
Apart from the built-in and custom rules, you can also use static symbols in the mask pattern that are also known as literals. In the masked value, a literal is always rendered on the same position as the position where it is defined in the
The following example demonstrates how to use the digit-requiring mask (
0) and the literal (
-) of the MaskedTextBox.
The following example demonstrates how to extend the available mask rules.
By default, the MaskedTextBox always renders a mask. To display the mask only when the input contains a value or is focused, use the
maskOnFocus is particularly useful in combination with floating labels.