none
inserir cor de fundo em uma linha do datagridview RRS feed

  • Pergunta

  • Olá programadores! Eu estou com um seguinte problema.

    Tetei implementar este seguinte código em meu sistema:

    private void FrmRelatorioSaldoFinal_Load(object sender, EventArgs e)
    {
       foreach (DataGridViewRow row in dgvDadosSaldoFinal.Rows)
       {       
         if(Convert.ToDecimal(row.Cells["Column2"].Value.ToString()) < 0) 
        {
          row.DefaultCellStyle.BackColor = Color.Red;
          row.DefaultCellStyle.ForeColor = Color.White;         
        }                
      }
    }

    Quando eu faço a depuração aparece esta mensagem: "A cadeia de caracteres de entrada não estava formato correto". Sendo que o campo da coluna "Column2" o valor é decimal.

    Será que alguém pode me ajudar a encontrar a solução para este problema?


    • Editado Jô Alves quinta-feira, 7 de fevereiro de 2019 19:21
    quinta-feira, 7 de fevereiro de 2019 19:20

Respostas

  • Jô,

    Esse erro deve estar acontecendo na última linha do datagridview que possui o valor null.

    Então, trate caso alguma linha possuir valor null.

                if (!string.IsNullOrEmpty(row.Cells["Column2"].Value))
                {
                    if (Convert.ToDecimal(row.Cells["Column2"].Value.ToString()) < 0)
                    {
                        row.DefaultCellStyle.BackColor = Color.Red;
                        row.DefaultCellStyle.ForeColor = Color.White;
                    }
                }
    


    Natan

    • Marcado como Resposta Jô Alves quinta-feira, 7 de fevereiro de 2019 23:15
    quinta-feira, 7 de fevereiro de 2019 19:28

Todas as Respostas

  • Jô,

    Esse erro deve estar acontecendo na última linha do datagridview que possui o valor null.

    Então, trate caso alguma linha possuir valor null.

                if (!string.IsNullOrEmpty(row.Cells["Column2"].Value))
                {
                    if (Convert.ToDecimal(row.Cells["Column2"].Value.ToString()) < 0)
                    {
                        row.DefaultCellStyle.BackColor = Color.Red;
                        row.DefaultCellStyle.ForeColor = Color.White;
                    }
                }
    


    Natan

    • Marcado como Resposta Jô Alves quinta-feira, 7 de fevereiro de 2019 23:15
    quinta-feira, 7 de fevereiro de 2019 19:28
  • Muito obrigado pela ajuda. Deu tudo certo. Não passou na minha cabeça que eu poderia resolver desta maneira. Valeu!
    quinta-feira, 7 de fevereiro de 2019 23:15