# MaskedTextBox

The Wisej.NET `MaskedTextBox` enhances the `TextBox` control with declarative input validation. The `Mask` property enables specifying:

* Required input characters
* Optional input characters
* Input type expected at each mask position (digit, alphabetic, alphanumeric)
* Mask literals (characters appearing directly in the `MaskedTextBox`, like hyphens in phone numbers or currency symbols)
* Special character processing (e.g., converting to uppercase)

## Features

### Preset Masks

The custom mask property editor provides selection from predefined, commonly used masks.

![MaskedTextBox mask property editor](/files/-MgCBQ6-L3gkvJvCDI0I)

### Custom Error Handling

The `InvalidMessage` property sets a tooltip message for invalid entries.

![MaskedTextBox showing invalid input message](/files/-MgCDhnlsqjdxHaiNauO)

The `TypeValidationCompleted` event handler enables custom validation behavior.

![MaskedTextBox with custom validation handling](/files/-MckLucuDtWdplRS-cGC)

### Text Mask Format

The `TextMaskFormat` property determines literal and prompt character processing in the formatted string, controlling their inclusion in the `Text` property. Excluded prompt characters convert to spaces.

* `ExcludePromptAndLiterals`: Shows only user input text
* `IncludeLiterals`: Shows user input and mask literal characters
* `IncludePrompt`: Shows user input and prompt characters
* `IncludePromptAndLiterals`: Shows user input, literal characters, and prompt characters

## How To

### Customize the Appearance

Customize text color using the `ForeColor` property.

## Advanced

### JavaScript Widget

| Item                | Description                                                                                                         |
| ------------------- | ------------------------------------------------------------------------------------------------------------------- |
| Class name          | "wisej.web.MaskedTextBox"                                                                                           |
| Theme Appearance    | "textbox"                                                                                                           |
| Child components    | "textfield" is the inner \<input> widget. See [JavaScript](/docs/concepts/javascript-object-model.md)               |
| Toolcontainer state | "editor", see [Embedded Tools](/docs/controls/general/embedded-tools.md)                                            |
| Source code         | [https://github.com/iceteagroup/wisej-js](https://github.com/iceteagroup/wisej-js/blob/master/wisej.web.TextBox.js) |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.wisej.com/docs/controls/editors/textbox/maskedtextbox.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
