none
DataGridView Substring da Coluna RRS feed

  • Pergunta

  • Boa tarde, já procurei no fórum mas não encontrei, é possível exibir no DataGridView parte do valor de uma coluna, por exemplo:

    DataGridView.Columns[0].Substring(3,10) ?

    Desde já obrigado.

    segunda-feira, 23 de julho de 2012 20:14

Respostas

  • Tente usar do evento CellFormatting, la você verifica se é a coluna que pretende dar o substring, logo em seguida recupera o value e atribui novamente. Exemplo:

    DataGridView dataGridView1 = new DataGridView();
    
    private void Form1_Load(object sender, EventArgs e)
    {
        DataTable dt = new DataTable();
    
        dt.Columns.Add("Nome", typeof(string));
        dt.Columns.Add("Numero", typeof(int));
    
        for (int i = 0; i < 50; i++)
        {
            dt.Rows.Add(string.Format("{0}nome", i), i);
        }
    
        dataGridView1.DataSource = dt;
    
        dataGridView1.CellFormatting += dataGridView1_CellFormatting;
    
        this.Controls.Add(dataGridView1);
    }
    
    private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
    {
        if (dataGridView1.Columns[e.ColumnIndex].Name == "Nome")
        {
            if (e.Value != null)
                e.Value = e.Value.ToString().Substring(0, 3);
        }
    }

    Referencia:
    http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.cellformatting.aspx

    Vitor Mendes | Seu feedback é muito importante para todos!
    Visite o meu site: http://www.vitormendes.com.br/

    segunda-feira, 23 de julho de 2012 20:33

Todas as Respostas

  • Tente usar do evento CellFormatting, la você verifica se é a coluna que pretende dar o substring, logo em seguida recupera o value e atribui novamente. Exemplo:

    DataGridView dataGridView1 = new DataGridView();
    
    private void Form1_Load(object sender, EventArgs e)
    {
        DataTable dt = new DataTable();
    
        dt.Columns.Add("Nome", typeof(string));
        dt.Columns.Add("Numero", typeof(int));
    
        for (int i = 0; i < 50; i++)
        {
            dt.Rows.Add(string.Format("{0}nome", i), i);
        }
    
        dataGridView1.DataSource = dt;
    
        dataGridView1.CellFormatting += dataGridView1_CellFormatting;
    
        this.Controls.Add(dataGridView1);
    }
    
    private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
    {
        if (dataGridView1.Columns[e.ColumnIndex].Name == "Nome")
        {
            if (e.Value != null)
                e.Value = e.Value.ToString().Substring(0, 3);
        }
    }

    Referencia:
    http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.cellformatting.aspx

    Vitor Mendes | Seu feedback é muito importante para todos!
    Visite o meu site: http://www.vitormendes.com.br/

    segunda-feira, 23 de julho de 2012 20:33
  • Perfeito Vitor !

    Valeu mesmo.

    terça-feira, 24 de julho de 2012 00:31