Visual Basic.NET - manejo DataGridview

 
Vista:

manejo DataGridview

Publicado por Ghenna (4 intervenciones) el 19/12/2007 20:19:19
Tengo un DatagridView asi:
-----------------------------------------------
RENDIMIENTO ESTATUS
-----------------------------------------------
4.5 1
3.8 2
3.4 0
-----------------------------------------------

Como ven, esta formado por 2 Columnas (Rend,Estatus)

Lo que quiero hacer es:
Cuando la Celda ESTATUS sea 1
El Rendimiento se pintara verde
Cuando sea 2
Se pintara Amarillo
Cuando sea 0
Se pintara Rojo

Tengo problemas, al manejar las celdas del Grid, ya logre pintar la columna ESTATUS, segun el contenido de esta (0,1,2) pero....lo que yo quiero y necesito es, pintar la columna Rend.

Esto con el fin de poder ocultar la columna Estatus y solamente aparesca la columna Rend pero coloreada segun sea el caso.

Ojala que alguien pudiera iluminarme con esto...ya que no encuentro nada en la red que despeje mis dudas.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:manejo DataGridview

Publicado por P. J. (706 intervenciones) el 19/12/2007 22:18:49
Private Sub btnValidar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnValidar.Click
For i As Integer = 0 To Me.DataGridView1.Rows.Count - 2
Select Case Me.DataGridView1.Item(1, i).Value.ToString
Case 1
Me.DataGridView1.Rows(i).DefaultCellStyle.BackColor = Color.Azure
Case 2
Me.DataGridView1.Rows(i).DefaultCellStyle.BackColor = Color.Beige
Case 3
Me.DataGridView1.Rows(i).DefaultCellStyle.BackColor = Color.BurlyWood
End Select
Next
End Sub

....
Con ese codigo cambias de color a la celda Rendimiento, dependiendo del valor de Estatus.

En el bucle esta -2 porque no puse a FALSE la propiedad AllowUserToAddRows, sino seria -1.

Espero haberte ayudado o iluminado. XDXD
Salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:manejo DataGridview

Publicado por Ghenna (4 intervenciones) el 20/12/2007 05:19:04
--------------------------
COL1 COL2 COL3
--------------------------
110 4.5
120 4.1
130 3.9
--------------------------
Final: 3.9 2

Este es el bosquejo del contenido del Grid, el cual lo lleno con un Stored Prcedure.

1) Hay 3 Columnas
a) COL1: Un consecutivo, que al final del reporte se agrega la etiqueta "Final:"
b) COL2: Muestra los rendimientos en el periodo de tiempo solicitado.
c) COL3: Vacio, a excepcion del renglon final, donde mostrara un Estatus Final (0,1,2).

2) El grid muestra un reporte de Rendimientos, el cual necesito que, el Rendimiento Final se pinte dependiendo del Estatus Final
a) 0 Rojo
b) 1 Verde
c) 2 Amarillo

** Lo que he estado investigando es, que debo entrar al evento CellFormatting; despues ya no se como hacerle, lo mas que he logrado es, pintar el Estatus Final(COL3) segun su contenido. Pero lo que yo quiero es...pintar el Rendimiento Final (COL2).

Ojala me halla sabido explicar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:manejo DataGridview

Publicado por P. J. (706 intervenciones) el 20/12/2007 16:42:58
Private Sub DataGridView1_CellFormatting(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) Handles DataGridView1.CellFormatting
If e.RowIndex < Me.DataGridView1.RowCount - 1 Then
Select Case Me.DataGridView1.Item(1, e.RowIndex).Value.ToString
Case 1
Me.DataGridView1.Rows(e.RowIndex).Cells(0).Style.BackColor = Color.AliceBlue
Case 2
Me.DataGridView1.Rows(e.RowIndex).Cells(0).Style.BackColor = Color.Beige
Case 3
Me.DataGridView1.Rows(e.RowIndex).Cells(0).Style.BackColor = Color.BurlyWood
End Select
End If
End Sub

Sabia que ese evento existia pero nunca lo use. Igual era similar a lo del msj. anterior.

Yo para validar solo lo hice con 2 columnas, no se cuantas tendras tu pero solo cambia el indice de la columna o ponle el nombre, como prefieras.

Salu2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar