2009-10-28 18 views
7

Esto es para una aplicación winform vb.net 2008. Estoy recuperando datos de una base de datos y en función de algunas condiciones estáticas ... quiero cambiar el color del fondo y el texto. No hay ningún evento RowDataBound en WinForm ...cambio condicional de un color y texto de fondo de la celda datagridviews

esperanza alguien puede proporcionar alguna orientación gracias Shannon

+1

Puedo pensar en al menos 20 formas diferentes de recuperar datos de un DB, por lo que podría ser útil si fuera un poco más específico. –

+0

disculpa por eso ... no estoy teniendo problemas para recuperar los datos de la base de datos, está formateando el estilo de la celda en la que se encuentran los datos. – jvcoach23

Respuesta

4

Lo tengo trabajo ... en caso RowPostPaint .. Si pongo en

if (my criteria here) 
    Me.dgTableInfo.Rows(e.RowIndex).Cells("ColumnName").Style.BackColor = Color.Red 
end if 
1

No se olvide de configurar el selectoinBackColor también ... de lo contrario, si su fila roja cambia, pero la tiene resaltada, se verá igual que el resto de todos modos.

1

Esto funciona sin crear o llamar múltiples subs o funciones. Parece que funciona para cada instancia que lo necesito.

Do While myDataReader.Read() 
    ItemID = Trim(myDataReader.Item("ITEM").ToString()) 
    PAR = myDataReader.Item("PAR").ToString() 
    Returned = myDataReader.Item("RETURNED_AMOUNT") 
    Taken = myDataReader.Item("TAKEN_AMOUNT") 
    OnHand = ((PAR + Returned) - Taken) 

    DataGridViewItemList.Rows.Add(ItemID, PAR, Returned, Taken, OnHand) 

    RI = DataGridViewItemList.Rows.Count - 1 
    If OnHand <= (PAR/2) Then 
     DataGridViewItemList.Rows(RI).DefaultCellStyle.BackColor = Color.DarkSalmon 
    Else 
     DataGridViewItemList.Rows(RI).DefaultCellStyle.BackColor = Nothing 
    End If 
Loop 
Cuestiones relacionadas