none
Ajuda para formatar o CPF no DataGridView RRS feed

  • Pergunta

  • Olá Galera, tudo bem?

    Estou querendo formatar o CPF no DataGridView em C# e Windows Forms. O CPF no banco esta como varchar, pois bem como faço pra formata no DataGridView pra ele aparece como 000.000.000-00, segue os códigos de como faço pra pega os dados do banco e mostrar na Grid

        public class Aluno
        {
            public int ID {get; set;}
            public int RA {get; set;}
            public string NOME {get; set;}
            public string CPF {get; set;}
            public string RG {get; set;}
            public string TELEFONE {get; set;}
            public string CELULAR {get; set;}
            public string EMAIL {get; set;}
        }

    public partial class FrmCadastroAluno : Form
        {
            FAEEntities contexto = new FAEEntities();
            USUARIO usuario = new USUARIO();
            UsuarioBLL usuariobll = new UsuarioBLL();
            ALUNO aluno = new ALUNO();
    
            public FrmCadastroAluno()
            {
                InitializeComponent();
            }
    
            private void FrmCadastroAluno_Load(object sender, EventArgs e)
            {
                Query();
    
                usuario = usuariobll.VerificaPerfil(Program.UsuarioLogado);
    
                if (usuario != null)
                {
                    btnExcluir.Enabled = false;
                }
            }
    
            private void Query()
            {
                var query = from a in contexto.ALUNO
                            select new Aluno { ID = a.ID_ALUNO, RA = a.RA, NOME = a.NOME_ALUNO, CPF = a.CPF, RG = a.RG, TELEFONE = a.FONE,
                            CELULAR = a.CELULAR, EMAIL = a.EMAIL};
                this.grvAlunos.DataSource = query.ToList();
            }
        }

    domingo, 14 de outubro de 2012 18:31

Respostas

  • Podes fazer assim que é mais fácil:

                

    private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
            {
                Double d;
                if (e.ColumnIndex == 3 && e.Value != null)
                {
                    Double.TryParse(e.Value.ToString(), out d);

                    e.Value = d.ToString(@"000\.000\.000-000");
                }

            }

    José Antunes 

    • Marcado como Resposta andy.kz quinta-feira, 18 de outubro de 2012 02:01
    segunda-feira, 15 de outubro de 2012 16:12
  • Olá Andy,

    Vc pode customizar o código do evento CellFormating do seu DataGridView desta forma:

        private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { 
            int numeroColunaCPF = 1;
            if (e.ColumnIndex == numeroColunaCPF && e.Value != null) { 
                string cpf = e.Value.ToString(); 
    		
                cpf = string.Format("{0}.{1}.{2}-{3}",
                                    cpf.Substring(0, 3),
                                    cpf.Substring(3, 3),
                                    cpf.Substring(6, 3),
                                    cpf.Substring(9, 2));
    	    e.Value = cpf;
                e.FormattingApplied = true;
            } 
        } 
    .

    A variável numeroColunaCPF indica em qual coluna o CPF esta sendo exibido.

    []s!


    Fernando Henrique Inocêncio Borba Ferreira
    Microsoft MVP - Data Platform Development
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.com/
    Twitter: @ferhenrique
    Entity Framework - Brasil: https://www.facebook.com/EntityFrameworkBrasil

    • Sugerido como Resposta EduardoPiresMVP segunda-feira, 15 de outubro de 2012 23:20
    • Marcado como Resposta andy.kz quinta-feira, 18 de outubro de 2012 02:02
    segunda-feira, 15 de outubro de 2012 12:57

Todas as Respostas

  • Olá Andy,

    Vc pode customizar o código do evento CellFormating do seu DataGridView desta forma:

        private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { 
            int numeroColunaCPF = 1;
            if (e.ColumnIndex == numeroColunaCPF && e.Value != null) { 
                string cpf = e.Value.ToString(); 
    		
                cpf = string.Format("{0}.{1}.{2}-{3}",
                                    cpf.Substring(0, 3),
                                    cpf.Substring(3, 3),
                                    cpf.Substring(6, 3),
                                    cpf.Substring(9, 2));
    	    e.Value = cpf;
                e.FormattingApplied = true;
            } 
        } 
    .

    A variável numeroColunaCPF indica em qual coluna o CPF esta sendo exibido.

    []s!


    Fernando Henrique Inocêncio Borba Ferreira
    Microsoft MVP - Data Platform Development
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.com/
    Twitter: @ferhenrique
    Entity Framework - Brasil: https://www.facebook.com/EntityFrameworkBrasil

    • Sugerido como Resposta EduardoPiresMVP segunda-feira, 15 de outubro de 2012 23:20
    • Marcado como Resposta andy.kz quinta-feira, 18 de outubro de 2012 02:02
    segunda-feira, 15 de outubro de 2012 12:57
  • Podes fazer assim que é mais fácil:

                

    private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
            {
                Double d;
                if (e.ColumnIndex == 3 && e.Value != null)
                {
                    Double.TryParse(e.Value.ToString(), out d);

                    e.Value = d.ToString(@"000\.000\.000-000");
                }

            }

    José Antunes 

    • Marcado como Resposta andy.kz quinta-feira, 18 de outubro de 2012 02:01
    segunda-feira, 15 de outubro de 2012 16:12
  • Quando a coluna é CPF e CNPJ na mesma como é feito?
    quinta-feira, 4 de fevereiro de 2016 13:07