public void TestPatternGen() { var masker = new MaskedTextProvider(); masker.MatchPattern = "###-##-####"; Assert.AreEqual(@"^(\d{0,1})(\d{0,1})(\d{0,1})(\-{0,1})(\d{0,1})(\d{0,1})(\-{0,1})(\d{0,1})(\d{0,1})(\d{0,1})(\d{0,1}).*$", masker.RegExMatch); }
public MaskedTextBox(MaskedTextProvider maskedTextProvider) { if (maskedTextProvider == null) { throw new ArgumentNullException(); } provider = maskedTextProvider; is_empty_mask = false; Init(); }
public AutoCompletingMaskEventArgs(MaskedTextProvider maskedTextProvider, int startPosition, int selectionLength, string input) { AutoCompleteStartPosition = -1; m_maskedTextProvider = maskedTextProvider; m_startPosition = startPosition; m_selectionLength = selectionLength; m_input = input; }
public void FindAssignedEditPositionInRange() { var maskedTextProvider = new MaskedTextProvider(TestSimpleDigitMask); Assert.Equal(-1, maskedTextProvider.FindAssignedEditPositionInRange(0, 1, true)); maskedTextProvider.Add("12"); Assert.Equal(0, maskedTextProvider.FindAssignedEditPositionInRange(0, 1, true)); Assert.Equal(2, maskedTextProvider.FindAssignedEditPositionInRange(0, 5, false)); }
public void RemoveAt_StartPosition_EndPosition() { var maskedTextProvider = new MaskedTextProvider(TestSimpleDigitMask); Assert.True(maskedTextProvider.InsertAt("12", 0)); Assert.Equal(2, maskedTextProvider.AssignedEditPositionCount); Assert.True(maskedTextProvider.RemoveAt(0, 2)); Assert.Equal(0, maskedTextProvider.AssignedEditPositionCount); }
public void Clear() { var maskedTextProvider = new MaskedTextProvider(TestSimpleDigitMask); maskedTextProvider.Add("12"); Assert.Equal(2, maskedTextProvider.AssignedEditPositionCount); maskedTextProvider.Clear(); Assert.Equal(0, maskedTextProvider.AssignedEditPositionCount); }
public MaskedTextBox(string mask) { if (mask == null) { throw new ArgumentNullException(); } provider = new MaskedTextProvider(mask, CultureInfo.CurrentCulture); is_empty_mask = false; Init(); }
/// <summary> /// override the key down to handle delete of a character /// </summary> /// <param name="e">Arguments for the event</param> protected override void OnPreviewKeyDown(KeyEventArgs e) { base.OnPreviewKeyDown(e); MaskedTextProvider provider = MaskProvider; int position = SelectionStart; int selectionlength = SelectionLength; // If no selection use the start position else use end position int endposition = (selectionlength == 0) ? position : position + selectionlength - 1; if (e.Key == Key.Delete && position < Text.Length)//handle the delete key { if (provider.RemoveAt(position, endposition)) { RefreshText(provider, position); } e.Handled = true; } else if (e.Key == Key.Space) { if (provider.InsertAt(" ", position)) { RefreshText(provider, position); } e.Handled = true; } else if (e.Key == Key.Back)//handle the back space { if ((position > 0) && (selectionlength == 0)) { position--; if (provider.RemoveAt(position)) { RefreshText(provider, position); } } if (selectionlength != 0) { if (provider.RemoveAt(position, endposition)) { if (position > 0) { position--; } RefreshText(provider, position); } } e.Handled = true; } }
/// <summary> /// Formata um CEP com a máscara 00.000-00 /// </summary> /// <param name="cnpj">string CEP</param> /// <returns></returns> public static string ToCEPFormat(this string cep) { if (!cep.IsEmpty()) { MaskedTextProvider mtpCEP = new MaskedTextProvider(@"00\.000-000"); mtpCEP.Set(cep.PadLeft(8, '0')); return(mtpCEP.ToString()); } return(null); }
public void Remove_TestPosition_ResultHint() { var maskedTextProvider = new MaskedTextProvider(TestSimpleDigitMask); Assert.True(maskedTextProvider.InsertAt("1", 0)); Assert.Equal(1, maskedTextProvider.AssignedEditPositionCount); Assert.True(maskedTextProvider.Remove(out var testPosition, out MaskedTextResultHint resultHint)); Assert.Equal(MaskedTextResultHint.Success, resultHint); Assert.Equal(0, testPosition); }
/// <summary> /// The mask has changed. /// </summary> /// <param name="sender">The sender.</param> /// <param name="e">The <see cref="DependencyPropertyChangedEventArgs" /> instance containing the event data.</param> private static void MaskChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e) { var maskedTextBox = (MaskedTextBox)sender; var maskedTextProvider = new MaskedTextProvider((string)e.NewValue); maskedTextProvider.Set(maskedTextBox.Text); maskedTextBox._maskedTextProvider = maskedTextProvider; maskedTextBox.Refresh(0); }
public void Replace_InputChar_StartPosition_EndPosition_TestPosition_ResultHint() { var maskedTextProvider = new MaskedTextProvider(TestSimpleDigitMask); Assert.True(maskedTextProvider.InsertAt("12", 0)); Assert.True(maskedTextProvider.Replace('2', 0, 5, out int testPosition, out MaskedTextResultHint resultHint)); Assert.Equal("2-__-_", maskedTextProvider.ToDisplayString()); Assert.Equal(0, testPosition); Assert.Equal(MaskedTextResultHint.Success, resultHint); }
/// <summary> /// Check if the received string value matches with the Introduction Mask for Time datatype. /// </summary> /// <param name="stringValue">String to be checked.</param> /// <returns>Returns true if the received string matches with Introduction Mask.</returns> private bool IsValidTimeAccordingMask(string stringValue) { bool result = true; if (Mask != string.Empty) { MaskedTextProvider maskTextProvider = new MaskedTextProvider(ConvertMask2DisplayMask(Mask)); result = maskTextProvider.VerifyString(stringValue); } return(result); }
public void Replace_InputString_Position_TestPosition_ResultHint() { var maskedTextProvider = new MaskedTextProvider(TestSimpleDigitMask); Assert.True(maskedTextProvider.InsertAt("12", 0)); Assert.True(maskedTextProvider.Replace("23", 0, out int testPosition, out MaskedTextResultHint resultHint)); Assert.Equal(TestMaskResultReplaceString, maskedTextProvider.ToDisplayString()); Assert.Equal(2, testPosition); Assert.Equal(MaskedTextResultHint.Success, resultHint); }
private void UpdateText(MaskedTextProvider provider, int position) { if (provider == null) { throw new ArgumentNullException("MaskedTextProvider", "Mask cannot be null."); } Text = provider.ToDisplayString(); SelectionStart = position; }
public void Ctor_Mask_Culture_AllowPromptAsInput_PromptChar_PasswordChar_RestrictToAscii() { var maskedTextProvider = new MaskedTextProvider(TestSimpleDigitMask, new CultureInfo("en-US"), false, TestPromptChar, TestPasswordChar, false); Assert.Same(TestSimpleDigitMask, maskedTextProvider.Mask); Assert.Equal(TestLCID, maskedTextProvider.Culture.LCID); Assert.False(maskedTextProvider.AllowPromptAsInput); Assert.Equal(TestPromptChar, maskedTextProvider.PromptChar); Assert.Equal(TestPasswordChar, maskedTextProvider.PasswordChar); Assert.False(maskedTextProvider.AllowPromptAsInput); }
public StandartCharacterMaskEditBoxProvider(string mask, CultureInfo culture, RadMaskedEditBoxElement owner, bool allowPromptAsInput, char promptChar, char passwordChar, bool restrictToAscii) { this.owner = owner; this.allowPromptAsInput = allowPromptAsInput; this.promptChar = promptChar; this.passwordChar = passwordChar; this.restrictToAscii = restrictToAscii; this.mask = mask; this.culture = culture; this.provider = new MaskedTextProvider(mask, culture, allowPromptAsInput, promptChar, passwordChar, restrictToAscii); this.textBoxItem = owner.TextBoxItem; }
/// <summary> /// Formata um CPF com a máscara 000.000.000-00 /// </summary> /// <param name="cpf">string Cpf</param> /// <returns></returns> public static string ToCPFFormat(this string cpf) { if (!cpf.IsEmpty()) { cpf = cpf.Trim(); MaskedTextProvider mtpCpf = new MaskedTextProvider(@"000\.000\.000-00"); mtpCpf.Set(cpf.PadLeft(11, '0')); return(mtpCpf.ToString()); } return(null); }
public void VerifyString_Input_TestPosition_ResultHint() { var maskedTextProvider = new MaskedTextProvider(TestComplexDigitMask, new CultureInfo("en-US")); Assert.True(maskedTextProvider.VerifyString("10000000", out int testPosition, out MaskedTextResultHint resultHint)); Assert.Equal(10, testPosition); Assert.Equal(MaskedTextResultHint.Success, resultHint); Assert.False(maskedTextProvider.VerifyString("A", out testPosition, out resultHint)); Assert.Equal(1, testPosition); Assert.Equal(MaskedTextResultHint.DigitExpected, resultHint); }
public void VerifyEscapeChar() { var maskedTextProvider = new MaskedTextProvider (TestSimpleDigitMask, '*', true) { ResetOnSpace = true }; Assert.True(maskedTextProvider.VerifyEscapeChar(' ', 0)); Assert.True(maskedTextProvider.VerifyEscapeChar('_', 0)); Assert.False(maskedTextProvider.VerifyEscapeChar('T', 0)); }
/// <summary> /// Constructs the MaskedTextBox with the specified MaskedTextProvider object. /// </summary> public MaskedTextBox(MaskedTextProvider maskedTextProvider) { if (maskedTextProvider == null) { throw new ArgumentNullException(nameof(maskedTextProvider)); } AsciiOnly = maskedTextProvider.AsciiOnly; Culture = maskedTextProvider.Culture; Mask = maskedTextProvider.Mask; PasswordChar = maskedTextProvider.PasswordChar; PromptChar = maskedTextProvider.PromptChar; }
public void TestSSNStyle() { var masker = new MaskedTextProvider(); masker.MatchPattern = "###-##-####"; Assert.AreEqual("1", masker.ReplaceString("1")); Assert.AreEqual("12", masker.ReplaceString("12")); Assert.AreEqual("123", masker.ReplaceString("123")); Assert.AreEqual("123", masker.ReplaceString("123-")); Assert.AreEqual("123-45", masker.ReplaceString("123-45")); Assert.AreEqual("123-45-6789", masker.ReplaceString("123-45-6789")); Assert.AreEqual("123-45-6789", masker.ReplaceString("123456789")); }
/* * Mask Character Accepts Required? * 0 Digit (0-9) Required * 9 Digit (0-9) or space Optional # Digit (0-9) or space Required # L Letter (a-z, A-Z) Required # ? Letter (a-z, A-Z) Optional # & Any character Required # C Any character Optional # A Alphanumeric (0-9, a-z, A-Z) Required # a Alphanumeric (0-9, a-z, A-Z) Optional # Space separator Required # . Decimal separator Required # , Group (thousands) separator Required # : Time separator Required # / Date separator Required # $ Currency symbol Required # In addition, the following characters have special meaning: # Mask Character Meaning # < All subsequent characters are converted to lower case # > All subsequent characters are converted to upper case | Terminates a previous < or > \ Escape: treat the next character in the mask as literal text rather than a mask symbol */ void AssociatedObjectLoaded(object sender, System.Windows.RoutedEventArgs e) { this.Provider = new MaskedTextProvider(InputMask, CultureInfo.CurrentCulture); this.Provider.PromptChar = this.PromptChar; this.Provider.SkipLiterals = true; this.Provider.ResetOnSpace = this.ResetOnSpace; this.Provider.Set(AssociatedObject.Text); AssociatedObject.Text = GetProviderText(); //seems the only way that the text is formatted correct, when source is updated //AddValueChanged for TextProperty in a weak manner this._notifier = new WeakPropertyChangeNotifier(this.AssociatedObject, TextBox.TextProperty); this._notifier.ValueChanged += new EventHandler(this.UpdateText); }
/// <summary> /// Formata uma inscricao estadual com a máscara 000.000.000.000 /// </summary> /// <param name="insc">string inscricaoEstadual</param> /// <returns></returns> public static string ToInscricaoEstadualFormat(this string insc) { if (!insc.IsEmpty()) { insc = insc.Trim(); MaskedTextProvider mtpInsc = new MaskedTextProvider(@"000\.000\.000\.000"); mtpInsc.Set(insc.PadLeft(12, '0')); return(mtpInsc.ToString()); } return(null); }
/// <summary> /// Check if the received string value matches with the Introduction Mask for String datatype. /// </summary> /// <param name="stringValue">String to be checked.</param> /// <returns>Returns true if the received string matches with Introduction Mask.</returns> private bool IsValidStringAccordingMask(string stringValue) { bool result = true; if (Mask != string.Empty) { MaskedTextProvider maskTextProvider = new MaskedTextProvider(Mask); maskTextProvider.IncludeLiterals = false; maskTextProvider.Set(stringValue); result = maskTextProvider.VerifyString(stringValue) && maskTextProvider.MaskCompleted; } return(result); }
/// <summary> /// formata o CNPJ /// </summary> /// <param name="cnpj">valor a ser formatado</param> /// <returns></returns> public static string FormatCNPJ(string cnpj) { string ret = ""; MaskedTextProvider mascara; cnpj = Functions.OnlyNumbers(cnpj, "-.,/").ToString(); //cnpj //##.###.###/####-## mascara = new MaskedTextProvider(@"00\.000\.000/0000-00"); mascara.Set(cnpj); ret = mascara.ToString(); return(ret); }
/// <summary> /// Formata um CNPJ com a máscara 00.000.000/0000-00 /// </summary> /// <param name="cnpj">string Cnpj</param> /// <returns></returns> public static string ToCNPJFormat(this string cnpj) { if (!cnpj.IsEmpty()) { cnpj = cnpj.Trim(); MaskedTextProvider mtpCnpj = new MaskedTextProvider(@"00\.000\.000/0000-00"); mtpCnpj.Set(cnpj.PadLeft(14, '0')); return(mtpCnpj.ToString()); } return(null); }
private void UpdateText(int position) { MaskedTextProvider provider = MaskProvider; if (provider == null) { throw new InvalidOperationException(); } Text = provider.ToDisplayString(); SelectionLength = 0; SelectionStart = position; }
//refreshes the text of the textbox private void RefreshText(MaskedTextProvider provider, int position) { Text = provider.ToDisplayString(); SelectionStart = position; foreach (var part in _dtParts.Parts) { int index = dtFormat.IndexOf(part.Name); if (index != -1) { part.Index = index; part.Value = Text.Substring(index, part.Name.Length); } } }
public void Clear_MaskedTextResultHint() { var maskedTextProvider = new MaskedTextProvider(TestSimpleDigitMask); maskedTextProvider.Clear(out MaskedTextResultHint resultHint); Assert.Equal(MaskedTextResultHint.NoEffect, resultHint); maskedTextProvider.Add("12"); Assert.Equal(2, maskedTextProvider.AssignedEditPositionCount); maskedTextProvider.Clear(out resultHint); Assert.Equal(MaskedTextResultHint.Success, resultHint); Assert.Equal(0, maskedTextProvider.AssignedEditPositionCount); }
protected override void OnPreviewKeyDown(KeyEventArgs e) { // If the control is in ReadOnly mode, we don't want // to accept key input if (this.IsReadOnly == true) { e.Handled = false; return; } base.OnKeyDown(e); MaskedTextProvider maskProvider = GetMaskProvider(); int pos = this.SelectionStart; // Deleting a character (Delete key). // Currently this does nothing if you try to delete // a format character (unliked MaskedTextBox, which // deletes the next input character). // Could use our private SkipToEditableCharacter // method to change this behavior. if (e.Key == Key.Delete && pos < (this.Text.Length)) { if (maskProvider.RemoveAt(pos)) { RefreshText(maskProvider, pos); } e.Handled = true; } // Deleting a character (backspace). // Currently this steps over a format character // (unliked MaskedTextBox, which steps over and // deletes the next input character). // Could use our private SkipToEditableCharacter // method to change this behavior. else if (e.Key == Key.Back) { if (pos > 0) { pos--; if (maskProvider.RemoveAt(pos)) { RefreshText(maskProvider, pos); } } e.Handled = true; } }
public static string FormatarCpfCnpj(string strCpfCnpj) { if (strCpfCnpj.Length <= 11) { MaskedTextProvider mtpCpf = new MaskedTextProvider(@"000\.000\.000-00"); mtpCpf.Set(ZerosEsquerda(strCpfCnpj, 11)); return(mtpCpf.ToString()); } else { MaskedTextProvider mtpCnpj = new MaskedTextProvider(@"00\.000\.000/0000-00"); mtpCnpj.Set(ZerosEsquerda(strCpfCnpj, 11)); return(mtpCnpj.ToString()); } }
public MainForm () { // // _textBox1 // _textBox1 = new MaskedTextBox (); _textBox1.Location = new Point (8, 8); _textBox1.Mask = "LL/LLL"; _textBox1.Size = new Size (280, 20); _textBox1.UseSystemPasswordChar = true; Controls.Add (_textBox1); // // _textBox2 // _textBox2 = new MaskedTextBox (); _textBox2.Location = new Point (8, 40); _textBox2.PasswordChar = '%'; _textBox2.Size = new Size (280, 20); Controls.Add (_textBox2); // // _maskedTextProvider // _maskedTextProvider = new MaskedTextProvider ("LL/LL/LLLL"); _maskedTextProvider.PasswordChar = '@'; _maskedTextProvider.PromptChar = '?'; // // _textBox3 // _textBox3 = new MaskedTextBox (_maskedTextProvider); _textBox3.Location = new Point (8, 72); _textBox3.Size = new Size (280, 20); Controls.Add (_textBox3); // // MainForm // ClientSize = new Size (300, 110); Location = new Point (250, 100); StartPosition = FormStartPosition.Manual; Text = "bug #360390"; Load += new EventHandler (MainForm_Load); }
public void TestPhoneStyle() { var masker = new MaskedTextProvider(); masker.MatchPattern = "(###)###-####"; Assert.AreEqual("(1", masker.ReplaceString("1")); }