none
Restaura a cor de uma linha ao padrão em um Datagrid RRS feed

  • Pergunta

  • Pessoal

       Qual seria a melhor maneira de restaurar a cor de uma linha a sua cor anterior em um datagridview, pois tenho um datagridview com várias cores, e devido a um processamento elas devem ficar em uma determinada cor, e depois após o processamento, deve voltar ao padrão anterior, onde infelizmente não posso utilizar o recurso de seleção, pois já é utilizado para identificação de navegação do usuário ?

    segunda-feira, 4 de novembro de 2013 12:48

Todas as Respostas

  • Cola o antes e depois da sua DataGridView, por favor!?

    Fúlvio Cezar Canducci Dias

    segunda-feira, 4 de novembro de 2013 23:49
  • Fúlvio

        Boa tarde, segue código abaixo de como ficou até o momento, mais queria muito descobrir, como o select do datagridview faz, pois é muito interessante, pois o grid com várias cores ele consegue retorna a cor que estava anteriormente sem problema algum.

       Private Sub dgv_Selecao_CellDoubleClick(sender As Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgv_Selecao.CellDoubleClick
          If e.RowIndex >= 0 Then
             dgv_Selecao("ic_Selecao", e.RowIndex).Value = Not dgv_Selecao("ic_Selecao", e.RowIndex).Value
             If dgv_Selecao("ic_Selecao", e.RowIndex).Value = True Then
                nr_Qtde_Selecionada += 1
                vl_Documentos += dgv_Selecao("vl_Documento", e.RowIndex).Value
                dgv_Selecao.Rows(e.RowIndex).DefaultCellStyle.ForeColor = Color.White
                dgv_Selecao.Rows(e.RowIndex).DefaultCellStyle.BackColor = Get_Color_Zebrado("M", e.RowIndex)
             Else
                nr_Qtde_Selecionada -= 1
                vl_Documentos -= dgv_Selecao("vl_Documento", e.RowIndex).Value
                dgv_Selecao.Rows(e.RowIndex).DefaultCellStyle.ForeColor = Color.Black
                dgv_Selecao.Rows(e.RowIndex).DefaultCellStyle.BackColor = Get_Color_Zebrado("D", e.RowIndex)
             End If
             Atualiza_Barra_Status()
          End If
       End Sub
    
       Private Function Get_Color_Zebrado(ByVal cTipo_Selecao As String, ByVal nLinha_Grid As Integer) As Color
          Dim obj_Cor_Retorno As Color
          If cTipo_Selecao = "M" Then
             obj_Cor_Retorno = Color.FromArgb(204, 0, 0)
          Else
             If nLinha_Grid Mod 2 = 0 Then
                obj_Cor_Retorno = Color.FromArgb(255, 255, 255)
             Else
                obj_Cor_Retorno = Color.FromArgb(192, 255, 192)
             End If
          End If
    
          Return obj_Cor_Retorno
       End Function
    
    

    terça-feira, 5 de novembro de 2013 21:02