System.ComponentModel.MaskedTextProvider.EditPosition.Match C# (CSharp) Method

Match() public method

public Match ( char c, MaskedTextResultHint &resultHint, bool only_test ) : bool
c char
resultHint MaskedTextResultHint
only_test bool
return bool
			public bool Match (char c, out MaskedTextResultHint resultHint, bool only_test)
			{
				if (!MaskedTextProvider.IsValidInputChar (c)) {
					resultHint = MaskedTextResultHint.InvalidInput;
					return false;
				}

				if (Parent.ResetOnSpace && c == ' ' && Editable) {
					resultHint = MaskedTextResultHint.CharacterEscaped;
					if (FilledIn) {
						resultHint = MaskedTextResultHint.Success;
						if (!only_test && input != ' ') {
							switch (Type) {
							case EditType.AlphanumericOptional:
							case EditType.AlphanumericRequired:
							case EditType.CharacterOptional:
							case EditType.CharacterRequired:
								Input = c;
								break;
							default:
								Input = char.MinValue;
								break;
							}
						}
					}
					return true;
				}
				
				if (Type == EditType.Literal && MaskCharacter == c && Parent.SkipLiterals) {
					resultHint = MaskedTextResultHint.Success;
					return true;
				}
				
				if (!Editable) {
					resultHint = MaskedTextResultHint.NonEditPosition;
					return false;
				}

				switch (Type) {
					case EditType.AlphanumericOptional:
					case EditType.AlphanumericRequired:
						if (char.IsLetterOrDigit (c)) {
							if (Parent.AsciiOnly && !IsAscii (c)) {
								resultHint = MaskedTextResultHint.AsciiCharacterExpected;
								return false;
							} else {
								if (!only_test) {
									Input = c;
								}
								resultHint = MaskedTextResultHint.Success;
								return true;
							}
						} else {
							resultHint = MaskedTextResultHint.AlphanumericCharacterExpected;
							return false;
						}
					case EditType.CharacterOptional:
					case EditType.CharacterRequired:
						if (Parent.AsciiOnly && !IsAscii (c)) {
							resultHint = MaskedTextResultHint.LetterExpected;
							return false;
						} else if (!char.IsControl (c)) {
							if (!only_test) {
								Input = c;
							}
							resultHint = MaskedTextResultHint.Success;
							return true;
						} else {
							resultHint = MaskedTextResultHint.LetterExpected;
							return false;
						}
					case EditType.DigitOrSpaceOptional:
					case EditType.DigitOrSpaceOptional_Blank:
						if (char.IsDigit (c) || c == ' ') {
							if (!only_test) {
								Input = c;
							}
							resultHint = MaskedTextResultHint.Success;
							return true;
						} else {
							resultHint = MaskedTextResultHint.DigitExpected;
							return false;
						}
					case EditType.DigitRequired:
						if (char.IsDigit (c)) {
							if (!only_test) {
								Input = c;
							}
							resultHint = MaskedTextResultHint.Success;
							return true;
						} else {
							resultHint = MaskedTextResultHint.DigitExpected;
							return false;
						}
					case EditType.LetterOptional:
					case EditType.LetterRequired:
						if (!char.IsLetter (c)) {
							resultHint = MaskedTextResultHint.LetterExpected;
							return false;
						} else if (Parent.AsciiOnly && !IsAscii (c)) {
							resultHint = MaskedTextResultHint.LetterExpected;
							return false;
						} else {
							if (!only_test) {
								Input = c;
							}
							resultHint = MaskedTextResultHint.Success;
							return true;
						}
					default:
						resultHint = MaskedTextResultHint.Unknown;
						return false;
				}
			}