Exemplo n.º 1
0
 private void txtValor_PreviewTextInput(object sender, TextCompositionEventArgs e)
 {
     if (!string.IsNullOrEmpty(MascaraDeCaptura))
     {
         int inputMascaraLength = MascaraDeCaptura.Count(c => c.Equals('@'));
         int inputLength        = RemoveCaracteresNaoAceitos(RemoveMascaraDeCaptura(txtValor.Text)).Length;
         if (inputLength >= inputMascaraLength)
         {
             e.Handled = true;
             return;
         }
     }
     e.Handled = !PermitidoInput(e.Text);
 }
Exemplo n.º 2
0
        private string FormataInput(string texto)
        {
            texto = RemoveMascaraDeCaptura(texto);
            texto = RemoveCaracteresNaoAceitos(texto);

            //Mascara para apresentação do dado enquanto é digitado
            if (string.IsNullOrEmpty(MascaraDeCaptura))
            {
                //Seta a mascara com o tamanho maximo que é aceito
                //MascaraDeCaptura = new string('@', TamanhoMaximo);
                return(texto);
            }

            int    indice         = 0;
            int    length         = 0;
            string textoFormatado = "";

            if (IniciaPelaEsquerda)
            {
                for (int i = 0; i < MascaraDeCaptura.Length; i++)
                {
                    char c = MascaraDeCaptura[i];
                    if (c == '@')
                    {
                        if (texto.Length > indice + length)
                        {
                            length++;
                            if (texto.Length != indice + length)
                            {
                                continue;
                            }
                        }
                        textoFormatado += texto.Substring(indice, length);
                        break;
                    }

                    textoFormatado += string.Format("{0}{1}", texto.Substring(indice, length), c);
                    indice         += length;
                    length          = 0;
                }
                textoFormatado = string.Format("{0}{1}", textoFormatado, MascaraDeCaptura.Substring(textoFormatado.Length, MascaraDeCaptura.Length - textoFormatado.Length));
            }
            else
            {
                for (int i = MascaraDeCaptura.Length - 1; i >= 0; i--)
                {
                    char c = MascaraDeCaptura[i];
                    if (c == '@')
                    {
                        if (texto.Length > indice + length)
                        {
                            length++;
                            if (texto.Length != indice + length && i > 0)
                            {
                                continue;
                            }
                        }
                        textoFormatado = string.Format("{0}{1}", texto.Substring(texto.Length - indice - length, length), textoFormatado);
                        break;
                    }

                    textoFormatado = string.Format("{0}{1}{2}", c, texto.Substring(texto.Length - indice - length, length), textoFormatado);
                    indice        += length;
                    length         = 0;
                }
                textoFormatado = string.Format("{0}{1}", MascaraDeCaptura.Substring(0, MascaraDeCaptura.Length - textoFormatado.Length), textoFormatado);
            }

            textoFormatado = textoFormatado.Replace("@", ".");

            return(textoFormatado);
        }