FixedMaskedTextProvider

References
Implements a fixed masked text provider, using the standard System.ComponentModel.MaskedTextProvider.
Remarks: This wraps the standard provider in an interface used by the MaskedTextBox so that we can provide different implementations of masked text providers. The implementation of this is defined in each platform assembly so that we can use this from a PCL assembly.

Constructors

FixedMaskedTextProvider

#
public FixedMaskedTextProvider(string mask, CultureInfo culture = null, bool allowPromptAsInput = true, bool restrictToAscii = false)
Initializes a new instance of the FixedMaskedTextProvider class.
mask (string)Mask for the input. See Mask for mask format.
culture (CultureInfo = null)Culture to format date/time separators and numeric placeholders.
allowPromptAsInput (bool = true)If set to true, then allow the PromptChar as valid input.
restrictToAscii (bool = false)If set to true, restrict input characters to ASCII only (a-z or A-Z).

Properties

AllowPromptAsInput

#
public bool AllowPromptAsInput { get; }
Gets a value indicating whether the PromptChar can be a valid input character by the user.

AsciiOnly

#
public bool AsciiOnly { get; }
Gets a value indicating whether the input only accepts ascii characters A-Z or a-z.

AutoAdvance

#
public bool AutoAdvance { get; set; }
Gets or sets a value indicating that the cursor position will advance past literals to the next available edit position automatically.

Culture

#
public CultureInfo Culture { get; }
Gets the culture for the mask, as specified in the constructor.

DisplayText

#
public virtual string DisplayText { get; }
Gets the display text, including prompt characters.

EditPositions

#
public IEnumerable<int> EditPositions { get; }
Gets an enumeration of all valid edit positions in the mask.

IncludeLiterals

#
public bool IncludeLiterals { get; set; }
Gets or sets a value indicating that the Text property includes literals in the mask.

IncludePrompt

#
public bool IncludePrompt { get; set; }
Gets or sets a value indicating that the Text property includes prompt characters for each edit position in the mask.

IsEmpty

#
public virtual bool IsEmpty { get; }
Gets a value indicating the mask is empty with no characters filled out.

IsPassword

#
public bool IsPassword { get; set; }
Gets or sets a value indicating whether the mask should be password protected.

Mask

#
public string Mask { get; }
Gets the mask for this provider, as specified in the constructor.
Remarks: The mask format can consist of the following characters: 0 - Required digit from 0-9. 9 - Optional digit or space. # - Optional digit, space, or sign (+/-). If blank, then it is output as a space in the Text value. L - Required upper or lowercase letter. ? - Optional upper or lowercase letter. & - Required character. If AsciiOnly is true, then behaves like L. C - Optional character. If AsciiOnly is true, then behaves like ?. A - Required alphanumeric character. If AsciiOnly is true, then behaves like L. a - Optional alphanumeric. If AsciiOnly is true, then behaves like ?. . - Decimal placeholder based on the specified Culture for the mask. , - Thousands placeholder based on the specified Culture for the mask. : - Time separator based on the specified Culture for the mask. / - Date separator based on the specified Culture for the mask. $ - Currency symbol based on the specified Culture for the mask. < - Shift all characters that follow to lower case. > - Shift all characters that follow to upper case. | - Disables a previous shift to upper or lower case. \ - Escape the following character into a literal. All other characters are treated as literal and cannot be moved or deleted.
The text mask.

MaskCompleted

#
public virtual bool MaskCompleted { get; }
Gets a value indicating whether the mask has all required text to pass its validation.

MaskFull

#
public virtual bool MaskFull { get; }
Gets a value indicating that all available edit positions in the mask have been filled out.

PasswordChar

#
public char PasswordChar { get; set; }
In password mode, gets or sets the character to show for filled edit characters in the mask.

PromptChar

#
[DefaultValue('_')] public char PromptChar { get; set; }
Gets or sets the character to show for each unfilled edit position in the mask.

SkipLiterals

#
public bool SkipLiterals { get; set; }
Gets or sets a value indicating that the user can type literals to skip them in the mask.

Text

#
public virtual string Text { get; set; }
Gets or sets the text, usually excluding prompt or literal characters depending on the mask provider.

Methods

Clear

#
public bool Clear(ref int position, int length, bool forward)
Called to clear a range of characters at the specified position in the masked text.
Remarks: The cleared characters usually show the prompt character after cleared. This is useful for fixed length mask providers. For variable length, this is usually the same as calling Delete(int, int, bool).
position (ref int)Position to clear at.
length (int)Length of text (in the mask) to clear
forward (bool)true to delete the text forward, or false to delete backward
true when the deletion was successful, or false if it failed.
Clear

CommitText

#Since v2.12
public virtual void CommitText()
Called to update the display text after changes to the mask value.
Remarks: This is called after user changes to the mask value is complete, such as when the control loses focus, or when the user presses enter. This allows the mask provider to update the display text after changes are made to the value, while still allowing the user to type in the text without it changing until they are done.
CommitText

Delete

#
public virtual bool Delete(ref int position, int length, bool forward)
Called to delete a range of characters at the specified position in the masked text.
position (ref int)Position to delete at.
length (int)Length of text (in the mask) to delete
forward (bool)true to delete the text forward, or false to delete backward
true when the deletion was successful, or false if it failed.
Delete

Insert

#
public virtual bool Insert(char character, ref int position)
Called to insert a character at the specified position in the masked text.
character (char)Character to insert.
position (ref int)Position to insert at.
true when the insertion was successful, or false if it failed.
Insert

NormalizeWhitespace

#Since v2.12
public static string NormalizeWhitespace(string text)
Replaces every whitespace character in text that isn't a regular space with one.
Remarks: A mask can only use the regular space (U+0020) as whitespace. Any other whitespace character - such as the narrow no-break space that ICU-based cultures use in front of the AM/PM designator - is rejected as an invalid mask character, and cannot be escaped as a literal either, so it has to be substituted instead. Text that is going to be set on a mask has to be normalized the same way, otherwise it no longer lines up with the literals of the mask it was formatted for. See DateTimeMaskedTextProvider, which normalizes the date/time format it builds from the culture for that reason.
text (string)Mask or text to normalize the whitespace of.
The text with all of its whitespace characters turned into regular spaces.

Replace

#
public virtual bool Replace(char character, ref int position)
Called to replace a character at the specified position in the masked text.
character (char)Character to insert.
position (ref int)Position to insert at.
true when the replacement was successful, or false if it failed.
Replace