none
Mascara para cpf ou cnpj

    Question

  • Estou com problemas para criar uma mascara para cpf ou cnpj no light switch..ela  deve mostrar os mesmos com pontos, barras e tracos para o usuario, mas salvar sem os mesmos no banco...alguem poderia me ajudar?

    Desde ja agradeço...

    Wednesday, January 11, 2012 4:34 PM

Answers

  • A arquiterura do LightSwitch nao conheco, mas para remover caracteres de uma string voce pode usar:

     char[] trim = {"=", "\\", ";",".", ":",",","+","*"}; 
          int pos;
          while ((pos = this.textBox1.Text.IndexOfAny (trim)) >= 0) 
         {
            this.textBox1.Text = this.textBox1.Text.Remove (pos, 1);
          }

    Basta voce ver em qual evento voce chama este código.


    Consultoria Dot .NET

    ANALISTA DESENVOLVEDOR
    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como resposta.
    Wednesday, January 11, 2012 6:19 PM
  • Rafael Rubiati;

    Olha o que pode resolver seu problema é isso, se você quiser você pode por a mascara na propriedade 'mask' do MaskedTextBox que você está usando, caso queira fazer tudo por código, pode fazer o seguinte:

    Isso você define no evento load do Form que está seu MaskedTextBox:

    ----

    maskedTextBox1.Mask = "000.000.000-00";
    ----
    O número zero permite que você apenas digite números no MaskedTextBox, caso queira permitir o usuário digitar letras substitua o '0' por '#'
    Quando você quiser pegar o número digitado sem a máscara você faz isso:
    ----
    string cpfCnpj;  //String que vai armazenar o cpf sem máscara
              
    maskedTextBox1.TextMaskFormat = MaskFormat.ExcludePromptAndLiterals; //Aqui está tirando a máscara do MaskedTextBox e deixando apenas os números
    
    cpfCnpj = maskedTextBox1.Text; //Aqui você joga apenas os números dentro da váriavel
    
    maskedTextBox1.TextMaskFormat = MaskFormat.IncludePromptAndLiterals; //Aqui você volta a máscara no MaskedTextBox
    
    ----
    Está tudo ai Rafael, e tudo comentado, esse método que eu fiz, acho que é o mais correto, porque você já armazena o valor que deseja na variável, e ja volta a máscara no MaskedTextBox, espero que tenha ajudado.





    • Edited by LeGalli Wednesday, January 11, 2012 6:34 PM
    • Marked as answer by Harley AraujoOwner Wednesday, January 18, 2012 11:55 AM
    Wednesday, January 11, 2012 6:29 PM

All replies

  • Boa tarde.

    Voce ja tem algum código?

    Para criar mascaras no VS2010, voce pode fazer assim:

    http://www.linhadecodigo.com.br/Artigo.aspx?id=1786

    Tutorial para mascaras emLightSwitch

    http://dotnettim.wordpress.com/2011/04/14/lightswitch-creating-a-masked-password-textbox-control/

    http://dotnettim.wordpress.com/2011/04/17/lightswitch-creating-a-masked-password-textbox-part-2/


    Consultoria Dot .NET

    ANALISTA DESENVOLVEDOR
    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como resposta.

    Wednesday, January 11, 2012 4:39 PM
  • Obrigado

    Eu ja tenho um codigo sim..estou tentando criar essa mascara atraves do metodo

     "partial void nome_do_campo_Validate(EntityValidationResultsBuilder results)"

    o codigo que eu inseri dentro deste metodo cria a mascara, toda vez que o usuario digita o cpf ou cnpj sem pontos etc ele aparece no textBox com os pontos etc.O problema esta na hora de salvar, que eu quero que ele salve apenas numeros no banco...como se trata de um evento de validaçao nao consigo manipular quando o usuario vai salvar os dados..

    teria uma maneira diferente de fazer o mesmo?? 

    Obrigado, abraços..

    Wednesday, January 11, 2012 6:16 PM
  • A arquiterura do LightSwitch nao conheco, mas para remover caracteres de uma string voce pode usar:

     char[] trim = {"=", "\\", ";",".", ":",",","+","*"}; 
          int pos;
          while ((pos = this.textBox1.Text.IndexOfAny (trim)) >= 0) 
         {
            this.textBox1.Text = this.textBox1.Text.Remove (pos, 1);
          }

    Basta voce ver em qual evento voce chama este código.


    Consultoria Dot .NET

    ANALISTA DESENVOLVEDOR
    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como resposta.
    Wednesday, January 11, 2012 6:19 PM
  • Rafael Rubiati;

    Olha o que pode resolver seu problema é isso, se você quiser você pode por a mascara na propriedade 'mask' do MaskedTextBox que você está usando, caso queira fazer tudo por código, pode fazer o seguinte:

    Isso você define no evento load do Form que está seu MaskedTextBox:

    ----

    maskedTextBox1.Mask = "000.000.000-00";
    ----
    O número zero permite que você apenas digite números no MaskedTextBox, caso queira permitir o usuário digitar letras substitua o '0' por '#'
    Quando você quiser pegar o número digitado sem a máscara você faz isso:
    ----
    string cpfCnpj;  //String que vai armazenar o cpf sem máscara
              
    maskedTextBox1.TextMaskFormat = MaskFormat.ExcludePromptAndLiterals; //Aqui está tirando a máscara do MaskedTextBox e deixando apenas os números
    
    cpfCnpj = maskedTextBox1.Text; //Aqui você joga apenas os números dentro da váriavel
    
    maskedTextBox1.TextMaskFormat = MaskFormat.IncludePromptAndLiterals; //Aqui você volta a máscara no MaskedTextBox
    
    ----
    Está tudo ai Rafael, e tudo comentado, esse método que eu fiz, acho que é o mais correto, porque você já armazena o valor que deseja na variável, e ja volta a máscara no MaskedTextBox, espero que tenha ajudado.





    • Edited by LeGalli Wednesday, January 11, 2012 6:34 PM
    • Marked as answer by Harley AraujoOwner Wednesday, January 18, 2012 11:55 AM
    Wednesday, January 11, 2012 6:29 PM
  • eu tambem nao conheco bem o light switch, é a primeira vez que eu estou trabalhando com ele..mas precisava muito dessa mascara de cpf ou cnpj...Mesmo assim Obrigado

     

    ate mais...Abraços

    Wednesday, January 11, 2012 7:18 PM