none
Erro! Ocultando uma linha no datagridview. RRS feed

  • Pergunta

  • Estou tendo um erro ao tentar ocultar uma linha do datagridview que possui como datasource uma coleção personalizada, o seguinte código foi usado:

     

          int i = this.dgvTelefones.SelectedRows[0].Index;

          dgvTelefones.ClearSelection();

          this.dgvTelefones.Rows[ i ].Visible = false;

     

    No entanto ele me retorna a seguinte mensagem de erro:

     

    “Não é possível tornar invisível a linha associada à posição do gerenciador de moeda.”

     

    O problema é que não estou usando o dataset mais sim classes próprias, além disso gostaria de saber se tem como anexar o datagridview a uma propriedade dos items da coleção, por exemplo quando excluímos uma linha em um datatable ela está la mais não é mais visível, é marcada como escluída mais precisa estar lá para ser retornada ao dataadapter que por usa vez vai procurar e excluir no banco de dados...Gostaria de criar um comportamente semelhante, alguém ai tem alguma dica ou algum site com algo parecido, pode ser em inglês não tem problema não.

     

    Muito obrigado.

     

    terça-feira, 27 de novembro de 2007 13:29

Respostas

  • Caro Carlos deixa eu te falar uma coisa, não importa da onde os dados grid estão vindo, o problema aqui
    está relacionado com o bind do grid.
    Abaixo tenho algumas linha de código, coloque elas antes de efetuar algo do tipo que você estava usando:


    CurrencyManager cm = (CurrencyManager)BindingContext[dgvTelefones.DataSource];
    cm.EndCurrentEdit();
    cm.ResumeBinding();
    cm.SuspendBinding();


    int i = this.dgvTelefones.SelectedRows[0].Index;

    dgvTelefones.ClearSelection();

    this.dgvTelefones.Rows[ i ].Visible = false;



    Eu sei que vai funcionar ok.
    Chuck.
    sexta-feira, 28 de março de 2008 13:55

Todas as Respostas

  • Caro Carlos deixa eu te falar uma coisa, não importa da onde os dados grid estão vindo, o problema aqui
    está relacionado com o bind do grid.
    Abaixo tenho algumas linha de código, coloque elas antes de efetuar algo do tipo que você estava usando:


    CurrencyManager cm = (CurrencyManager)BindingContext[dgvTelefones.DataSource];
    cm.EndCurrentEdit();
    cm.ResumeBinding();
    cm.SuspendBinding();


    int i = this.dgvTelefones.SelectedRows[0].Index;

    dgvTelefones.ClearSelection();

    this.dgvTelefones.Rows[ i ].Visible = false;



    Eu sei que vai funcionar ok.
    Chuck.
    sexta-feira, 28 de março de 2008 13:55
  • Aproveitando a deixa pessoal,
    agora como eu faço para reexibir essas linhas ?

    No meu caso existe um botão que eu quero simplismente exibir TODAS  as linhas (caso haja alguma linha oculta).

    Como eu faria???


    Obrigado!!!
    Atenciosamente, USilvestre - usilvestre@gmail.com -
    segunda-feira, 14 de setembro de 2009 20:04
  • Olá pessoal, resolvi o problema.
    Simplesmente mandei carregar a tabela novamente do banco!!!


    Grato
    Atenciosamente, USilvestre - usilvestre@gmail.com -
    terça-feira, 22 de setembro de 2009 13:30
  • Opa.

     

    Eu to com um problema parecido.

    Estou usando uma datagridview para listar os nomes clientes cadastrados em meu programa, e ao clicar no nome e no botao ler, as demais informações relativas ao cliente aparecem em diversas textbox ao lado.

    Mas para isto, tenho que inserir na datagridview tanto o nome do cliente, quando o código do cliente (pk), por que é a pk que me retorna os dados completos do clientes (tendo em vista que duas pessoas podem possuir o mesmo nome).

    Eu gostaria de ocultar a linha 1 da datagridview, que no caso é a idcliente.

    Alguem tem alguma sugestão?

    estou usando o visual studio 2008.

     

    Obrigado.

    Gustavo

    sábado, 25 de setembro de 2010 14:57
  • Que bruxaria é essa? funcionou lindamente e como você tinha tanta certeza que ia funcionar? nunca tinha visto estas funções antes.
    quinta-feira, 21 de janeiro de 2016 00:40