/// <summary> /// Validates the specified character against all selected validation schemes. /// </summary> /// <param name="input"></param> /// <param name="validationFlags"></param> /// <returns></returns> protected virtual bool ValidateInputChar(char input, InputMaskValidationFlags validationFlags) { bool valid = (validationFlags == InputMaskValidationFlags.None); if (!valid) { Array values = Enum.GetValues(typeof(InputMaskValidationFlags)); //iterate through the validation schemes foreach (object o in values) { InputMaskValidationFlags instance = (InputMaskValidationFlags)(int)o; if ((instance & validationFlags) != 0) { if (this.ValidateCharInternal(input, instance)) { valid = true; break; } } } } return(valid); }
private bool ValidateCharInternal(char input, InputMaskValidationFlags validationType) { bool valid = false; switch (validationType) { case InputMaskValidationFlags.AllowInteger: case InputMaskValidationFlags.AllowDecimal: int i; if (validationType == InputMaskValidationFlags.AllowDecimal && input == '.' && !this.Text.Contains('.')) { valid = true; } else { valid = int.TryParse(input.ToString(), out i); } break; case InputMaskValidationFlags.AllowAlphabet: valid = char.IsLetter(input); break; case InputMaskValidationFlags.AllowAlphanumeric: valid = (char.IsLetter(input) || char.IsNumber(input)); break; } return(valid); }
protected virtual bool IsPlaceholderChar(char character, out InputMaskValidationFlags validationFlags) { validationFlags = InputMaskValidationFlags.None; switch (character.ToString().ToUpper()) { case "I": validationFlags = InputMaskValidationFlags.AllowInteger; break; case "D": validationFlags = InputMaskValidationFlags.AllowDecimal; break; case "A": validationFlags = InputMaskValidationFlags.AllowAlphabet; break; case "W": validationFlags = (InputMaskValidationFlags.AllowAlphanumeric); break; } return(validationFlags != InputMaskValidationFlags.None); }
private void UpdateInputMask() { string text = this.Text; this._maskChars.Clear(); this.Text = string.Empty; string mask = this.InputMask; if (string.IsNullOrEmpty(mask)) { return; } InputMaskValidationFlags validationFlags = InputMaskValidationFlags.None; for (int i = 0; i < mask.Length; i++) { bool isPlaceholder = this.IsPlaceholderChar(mask[i], out validationFlags); if (isPlaceholder) { this._maskChars.Add(new InputMaskChar(validationFlags)); } else { this._maskChars.Add(new InputMaskChar(mask[i])); } } string displayText; if (text.Length > 0 && this.ValidateTextInternal(text, out displayText)) { this.Text = displayText; } else { this.Text = this.GetDefaultText(); } }
public InputMaskChar(InputMaskValidationFlags validationFlags) { this._validationFlags = validationFlags; this._literal = (char)0; }
/// <summary> /// Validates the specified character against its input mask validation scheme. /// </summary> /// <param name="input"></param> /// <param name="validationType"></param> /// <returns></returns> private bool ValidateCharInternal(char input, InputMaskValidationFlags validationType) { bool valid = false; switch (validationType) { case InputMaskValidationFlags.AllowInteger: case InputMaskValidationFlags.AllowDecimal: int i; if (validationType == InputMaskValidationFlags.AllowDecimal && input == '.' && !this.Text.Contains('.')) { valid = true; } else { valid = int.TryParse(input.ToString(), out i); } break; case InputMaskValidationFlags.AllowAlphabet: valid = char.IsLetter(input); break; case InputMaskValidationFlags.AllowAlphanumeric: valid = (char.IsLetter(input) || char.IsNumber(input)); break; } return valid; }
/// <summary> /// Returns a value indicating if the specified input mask character is a placeholder. /// </summary> /// <param name="character"></param> /// <param name="validationFlags">If the character is a placeholder, returns the relevant validation scheme.</param> /// <returns></returns> protected virtual bool IsPlaceholderChar(char character, out InputMaskValidationFlags validationFlags) { validationFlags = InputMaskValidationFlags.None; switch (character.ToString().ToUpper()) { case "I": validationFlags = InputMaskValidationFlags.AllowInteger; break; case "D": validationFlags = InputMaskValidationFlags.AllowDecimal; break; case "A": validationFlags = InputMaskValidationFlags.AllowAlphabet; break; case "W": validationFlags = (InputMaskValidationFlags.AllowAlphanumeric); break; } return (validationFlags != InputMaskValidationFlags.None); }
/// <summary> /// Validates the specified character against all selected validation schemes. /// </summary> /// <param name="input"></param> /// <param name="validationFlags"></param> /// <returns></returns> protected virtual bool ValidateInputChar(char input, InputMaskValidationFlags validationFlags) { bool valid = (validationFlags == InputMaskValidationFlags.None); if (!valid) { Array values = Enum.GetValues(typeof(InputMaskValidationFlags)); //iterate through the validation schemes foreach (object o in values) { InputMaskValidationFlags instance = (InputMaskValidationFlags)(int)o; if ((instance & validationFlags) != 0) { if (this.ValidateCharInternal(input, instance)) { valid = true; break; } } } } return valid; }