Jump to content


Photo

Datagridview Color


  • Faça o login para participar
1 reply to this topic

#1 androide

androide

    Novato no fórum

  • Usuários
  • 8 posts
  • Sexo:Masculino

Posted 23/04/2010, 10:20

Boa Tarde, sou iniciante em programação C# e preciso de ajuda num formúlário.
Estou desenvolvendo um aplicativo de cadastro de usuarios com um campo para controle de orçamento, nesse campo exibe um datagridview com os dados nome na empresa, equipamento a ser feita a manutenção, custo do trabalho e prazo, eu preciso fazer com que quando a data estiver proxima de vencer a linha vai mudando de cor de azul para vermelho, ou seja se falta 20 dias para efetuar o pagamento a linha estará azul, se faltar 7 dias laranja se faltar 2 dias vermelho, e quando vencer o dia me aparecer um alert com o grupo de orçamento que venceu.

isso é possivel? o codigo abaixo mostra onde parei, descobri um eventono c# chamado dataGridView4_CellFormatting, onde vi que é possível fazer esse efeito, mas no site que vi sobre isso não especificava bem como usar, e como eu adequar a minha necessidade.

private void dataGridView4_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (dataGridView4.Columns[e.ColumnIndex].Name == "Prazo") {

if (e.Value != null) {


}

}
}


Se puderem me ajudar serei muito grato.
















<a href=http://www.adult-cms.com/>porn cms</a>

Consegui resolver, só que a cor não está aplicando, eu rodei o script por partes para ver se a instrução if estava funcionando e está ele execulta o comando Color.Red mas não colore o grid, alguém pode ver isso pra mim?

private void dataGridView4_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
            {
                

                
                    if (dataGridView4.Columns[5].Name == "Prazo" && dataGridView4[5,i].Value != null)
                    {
                        
                        

                            DateTime dgvData = DateTime.Parse(dataGridView4[5, i].Value.ToString());
                            DateTime Data = DateTime.Now;
                            int contador = Datediff(dgvData, Data);

                            if (contador < 1)
                            {
                                //e.RowIndex
                                dataGridView4.Rows[i].DefaultCellStyle.BackColor = Color.Red;
                                i = i + 1;
                            }
                            
                        

                   }
                
                
                

            }


#2 MACUL

MACUL

    Doutor

  • Usuários
  • 770 posts
  • Sexo:Masculino
  • Localidade:SP

Posted 04/05/2010, 10:44

http://msdn.microsof...y/aa479342.aspx


Sub productsGridView_RowDataBound(ByVal sender As Object, _
  ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs)
    If e.Row.RowType = DataControlRowType.DataRow Then
        'determine the value of the UnitsInStock field
        Dim unitsInStock As Integer =  _
          Convert.ToInt32(DataBinder.Eval(e.Row.DataItem, _
          "UnitsInStock"))
        If unitsInStock = 0 Then
            ' color the background of the row yellow
            e.Row.BackColor = Drawing.Color.Yellow
        End If
    End If
End Sub
productsGridView_RowDataBound Event Handler (C#)
void productsGridView_RowDataBound(object sender, 
  GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        // determine the value of the UnitsInStock field
        int unitsInStock = 
         Convert.ToInt32(DataBinder.Eval(e.Row.DataItem, 
         "UnitsInStock"));
        if (unitsInStock == 0)
            // color the background of the row yellow
            e.Row.BackColor = Color.Yellow;
    }
}

*************** M ** A ** C ** U ** L ***************

*************************************************




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq