none
DataGridView + Imagem no Evento Cell_Formating RRS feed

  • Pergunta

  • Olá Pessoal,

    estou colocando uma imagem dinâmica no DataGridView de acordo com determinada condição.

    Estou colocando essa imagem, que encontra-se em um arquivo de recurso (resource file).

    Funcionou perfeitamente, no entando fica "piscando" parecendo que está em um Loop. Na verdade está pq quando coloco um BreakPoint no evento ele entra toda hora!!!

    Minha pergunta é: Existe outro evento que coloque essa lógica? Existe uma forma melhor de colocar a imagem?

    O código é mais ou menos assim:

    Se e.RowIndex>1 então
    Se datagridView1.Item(1,e.Rowindex) = X então
    datagridView1.Item(2,e.Rowindex).Value= arquivodeRecurso.nomeimagem




    quinta-feira, 11 de setembro de 2008 22:10

Respostas

  • Outra forma, AINDA MELHOR, é colocar a ROTINA NO EVENTO

    RowStateChanged

     

    Esse evento é bem melhor, pois executa a ação apenas 1 vez. O CellFormating fica dando um loop.

     

    Valeu.

     

    terça-feira, 16 de setembro de 2008 13:02
  • Bom Pessoal. Consegui resolver o problema.

    Segue o registro para alguém saber solucionar quando tiver o mesmo problema que eu.

     

    No campo IMAGEM eu coloquei a propriedade IMAGELAYOUT como STRETCH. Ou seja, preenche a célula toda com a imagem. ISSO JÁ TIRA o EFEITO "PISCA-PISCA". Porém para deixar um melhor performance eu valida no evento se a coluna que ele está formatando é a coluna da imagem. De negrito o que melhorou:

     

    Se e.RowIndex>-1 AND e.ColumIndex=1  então

    Se datagridView1.Item(1,e.Rowindex) = X então

    datagridView1.Item(2,e.Rowindex).Value= arquivodeRecurso.nomeimagem

     

    Abraços,

    Maxwel

    segunda-feira, 15 de setembro de 2008 21:13

Todas as Respostas

  • Bom Pessoal. Consegui resolver o problema.

    Segue o registro para alguém saber solucionar quando tiver o mesmo problema que eu.

     

    No campo IMAGEM eu coloquei a propriedade IMAGELAYOUT como STRETCH. Ou seja, preenche a célula toda com a imagem. ISSO JÁ TIRA o EFEITO "PISCA-PISCA". Porém para deixar um melhor performance eu valida no evento se a coluna que ele está formatando é a coluna da imagem. De negrito o que melhorou:

     

    Se e.RowIndex>-1 AND e.ColumIndex=1  então

    Se datagridView1.Item(1,e.Rowindex) = X então

    datagridView1.Item(2,e.Rowindex).Value= arquivodeRecurso.nomeimagem

     

    Abraços,

    Maxwel

    segunda-feira, 15 de setembro de 2008 21:13
  • Outra forma, AINDA MELHOR, é colocar a ROTINA NO EVENTO

    RowStateChanged

     

    Esse evento é bem melhor, pois executa a ação apenas 1 vez. O CellFormating fica dando um loop.

     

    Valeu.

     

    terça-feira, 16 de setembro de 2008 13:02