none
Dúvidas em DataGrid RRS feed

  • Pergunta

  • Boa tarde pessoal. Vê se vocês podem me ajudar. Estou povoando um datagrid com 20 registros. No momento que eu clico no décimo registro a rotina tem que povoar os meus textboxs. Isso ele está fazendo, porém, com as informações do primeiro registro no datagrid. Clicando em qualquer um dos registros ele sempre traz os dados do primeiro registro do datagrid. Essa é arotina que eu estou utilizando para povoar os meus textbox.

                txtCodigoCfop.Text      = dgvConsultaCte.Rows[0].Cells[1].Value.ToString();
                txtCfop.Text            = dgvConsultaCte.Rows[0].Cells[3].Value.ToString();
                txtDescricaoCfop.Text   = dgvConsultaCte.Rows[0].Cells[2].Value.ToString();
    

    onde eu posso está errando?

    Garibaldo

    terça-feira, 9 de junho de 2015 20:07

Respostas

  • Ele está fazendo isso pois você está sempre pegando a primeira linha do DataGrid(dgvConsultCte.Rows[0]).

    Tu pode fazer da seguinte maneira, assina o evento de CellClick do datagrid e em vez de usar 0 como index, usa o index da linha clicada.

    Exemplo:

    private void dvgConsulta_CellClick(object sender, DataGridViewCellEventArgs e)
            {
                var indexDaLinhaClicada = e.RowIndex;
    
                txtCodigoCfop.Text = dgvConsultaCte.Rows[indexDaLinhaClicada].Cells[1].Value.ToString();
                txtCfop.Text = dgvConsultaCte.Rows[indexDaLinhaClicada].Cells[3].Value.ToString();
                txtDescricaoCfop.Text = dgvConsultaCte.Rows[indexDaLinhaClicada].Cells[2].Value.ToString();
            }

    Abraço!



    terça-feira, 9 de junho de 2015 20:12