none
CheckBox e DataGridView RRS feed

  • Pergunta

  • Boa tarde,

    Possuo uma aplicação Windows Form e estou utilizando uma coluna checkbox no datagridview.

    Criei somente esta coluna no datagridview, o resto das colunas vem de um dataset em tempo de execução.

    No decorrer do meu código, verifico se existe registro entre uma tabela e os dados que estão na linha do datagrid, se existir, eu checo o datagridview.

    Segue o código para ficar mais explicado:

    for (int i = 0; i < dgvTabFases.Rows.Count; i++)
                    {
                        fase.Fase = Convert.ToInt32(dgvTabFases.RowsIdea.Cells[1].Value);
                       
                        if (fase.VerificaFaseReferencia())
                            dgvTabFases.RowsIdea.Cells[0].Value = true;
                        else
                            dgvTabFases.RowsIdea.Cells[0].Value = false;
                    }

    Ou seja, eu verifico se existe essa fase para a referência, se existir eu marco o check, senão desmarco.

    Eu debugando ele muda o status da coluna para true ou false como é para ser, o problema está sendo que ele não está "redesenhando" a grid, ou seja, ele não exibe que está marcado. O meu formulário possui outra aba, se eu sair da aba que estou e voltar para a aba que tem o datagridview, ele executa denovo o mesmo código e vemos o que está checado ou não.

    Ou seja, ele faz o mesmo código, mas só na 2ª vez que me mostra o que está checado ou não. Já tentei usar vários métodos... refresh... begin edit... commit edit... etc.. mas não rolou...

    Agradeço qualquer ajuda.

    Leandro
    sexta-feira, 26 de outubro de 2007 19:26

Todas as Respostas

  • Leandro

     

    Crie o campo no dataset e faça a alteração também no dataset, assim o método refresh() irá funcionar.

     

    []s,

     

    domingo, 28 de outubro de 2007 00:42
  • Pode dar um exemplo de como fazer isso?
    segunda-feira, 29 de outubro de 2007 11:53
  • Leandro,

     

    Abre o dataset designer e inclua o campo na sua tabela usando o botão direito do mouse, ele funcionará como um campo virtual, já que não existe no BD.

     

    Feito isto, você adiciona o campo no grid, assim como fez com os outros campos.

     

    []s,

     

    segunda-feira, 29 de outubro de 2007 12:10