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();
 }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 6
0
        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();
 }
Exemplo n.º 8
0
        /// <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;
            }
        }
Exemplo n.º 9
0
        /// <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);
        }
Exemplo n.º 10
0
        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);
        }
Exemplo n.º 11
0
        /// <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);
        }
Exemplo n.º 12
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);
        }
Exemplo n.º 14
0
        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;
        }
Exemplo n.º 16
0
        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;
 }
Exemplo n.º 18
0
        /// <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);
        }
Exemplo n.º 19
0
        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);
        }
Exemplo n.º 20
0
        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));
        }
Exemplo n.º 21
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);
 }
Exemplo n.º 24
0
        /// <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);
        }
Exemplo n.º 26
0
        /// <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);
        }
Exemplo n.º 27
0
        /// <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;
        }
Exemplo n.º 29
0
 //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);
         }
     }
 }
Exemplo n.º 30
0
        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;
            }
        }
Exemplo n.º 32
0
 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());
     }
 }
Exemplo n.º 33
0
	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"));
 }