Usuário com melhor resposta
Erro na Grid ao clicar para passar valor

Pergunta
-
Olá pessoal.
Quando clico na grid:
Não vai! Ele já aparece os dados da linha 1, quando inicia o form, mas se clico na 2 pra exibir, não vai! Aparece isso:
Alguém pode me ajudar? Segue o código:
private void mDataGrid_SelectionChanged(object sender, EventArgs e) { lblIDOcorrencia.Text = mDataGrid.CurrentRow.Cells[0].Value.ToString(); lblNomeEmpresa.Text = mDataGrid.CurrentRow.Cells[2].Value.ToString(); lblCC.Text = mDataGrid.CurrentRow.Cells[1].Value.ToString(); lblVData.Text = mDataGrid.CurrentRow.Cells[3].Value.ToString(); txtVDescricao.Text = mDataGrid.CurrentRow.Cells[4].Value.ToString(); lblVCausa.Text = mDataGrid.CurrentRow.Cells[5].Value.ToString(); lblVPDCA.Text = mDataGrid.CurrentRow.Cells[6].Value.ToString(); lblVValidacao.Text = mDataGrid.CurrentRow.Cells[7].Value.ToString(); lblIDOcorrencia.Text = mDataGrid.CurrentRow.Cells[0].Value.ToString(); lblNomeEmpresa.Text = mDataGrid.CurrentRow.Cells[2].Value.ToString(); lblCC.Text = mDataGrid.CurrentRow.Cells[1].Value.ToString(); lblVData.Text = mDataGrid.CurrentRow.Cells[3].Value.ToString(); txtVDescricao.Text = mDataGrid.CurrentRow.Cells[4].Value.ToString(); lblVCausa.Text = mDataGrid.CurrentRow.Cells[5].Value.ToString(); lblVPDCA.Text = mDataGrid.CurrentRow.Cells[6].Value.ToString(); lblVValidacao.Text = mDataGrid.CurrentRow.Cells[7].Value.ToString(); }
Obrigado por qualquer ajuda! :D
Respostas
-
Tente descobrir qual é o índice que está no CurrentRow do grid. Apenas repouse o mouse sobre cada propriedade, que aparecerá as informações dela para você navegar. Assim você poderá descobrir, entre outras coisas, o índice da CurrentRow, o conteúdo da célula, enfim. Sem ter estas informações, fica difícil de saber o que é o problema. Também experimente comentar esta linha, e ver se o problema é só nela.
- Marcado como Resposta Robson William SilvaModerator segunda-feira, 27 de fevereiro de 2017 14:53
Todas as Respostas
-
Olá, Jessé!
Se o seu datagrid está habilitado para adicionar uma nova linha, é possível que ele esteja setando esta nova linha como CurrentRow. Tenta mudar para isto:
lblIDOcorrencia.Text = mDataGrid.SelectedRows[0].Cells[0].Value.ToString();
Bom trabalho!
-
Olá, Jessé!
Se o seu datagrid está habilitado para adicionar uma nova linha, é possível que ele esteja setando esta nova linha como CurrentRow. Tenta mudar para isto:
lblIDOcorrencia.Text = mDataGrid.SelectedRows[0].Cells[0].Value.ToString();
Bom trabalho!
Ainda não corrigiu meu problema :/ -
Jessé, eta mensagem significa que na instância que você está querendo pegar do grid, o conteúdo de Value é null, e null não pode ser convertido para string. Pode ser que o conteúdo ainda não esteja de fato gravado na célula e, neste caso, tente:
lblIDOcorrencia.Text = mDataGrid.CurrentRow.Cells[0].FormattedValue.ToString();
Mas tente descobrir qual é o index da CurrentRow do grid, aí você terá a ideia de qual é o problema.
-
-
Tente descobrir qual é o índice que está no CurrentRow do grid. Apenas repouse o mouse sobre cada propriedade, que aparecerá as informações dela para você navegar. Assim você poderá descobrir, entre outras coisas, o índice da CurrentRow, o conteúdo da célula, enfim. Sem ter estas informações, fica difícil de saber o que é o problema. Também experimente comentar esta linha, e ver se o problema é só nela.
- Marcado como Resposta Robson William SilvaModerator segunda-feira, 27 de fevereiro de 2017 14:53