Filas en distinto color, imagenes (datagridview)

28/09/2006 - 11:09 por davidfalv | Informe spam
Es posible :

¿poner una imagen distinta en una columna de un datagridview en
funcion del valor de una tabla (0=error,1=ok...)?

¿y cambiar el color de la fila (si es 0 poner la en rojo, )?

¿como?

Preguntas similare

Leer las respuestas

#1 Luis Miguel Blanco
28/09/2006 - 18:33 | Informe spam
Hola David

Para hacer lo que necesitas añade en primer lugar una columna de tipo
DataGridViewImageColumn a la colección de columnas del control datagridview.
A continuación escribe el evento CellFormatting del datagridview, en el que
mediante su parámetro de argumentos, compruebas la columna que en ese momento
se está procesando.

Si la columna en proceso es la de imagen, miras el valor del campo que
utilizarás para discriminar si pones una u otra imagen, y asignas la que
corresponda.

Si es la columna en proceso es cualquier otra, el proceso es similar, miras
el valor del campo que utilizas como referencia, y asignas el color de la
celda.

Te adjunto un ejemplo para que puedas ver el código necesario:

'////////////////////////////////////////////
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Dim oConexion As SqlConnection
oConexion = New SqlConnection()
oConexion.ConnectionString = "Data Source=localhost;" & _
"Initial Catalog=AdventureWorksDW;" & _
"User ID=sa;Password3sa456"

Dim oComando As SqlCommand
oComando = New SqlCommand("SELECT FirstName,LastName," & _
"Gender FROM DimCustomer", oConexion)

Dim oDataAdapter As SqlDataAdapter
oDataAdapter = New SqlDataAdapter(oComando)

Dim oDataSet As DataSet
oDataSet = New DataSet()
oDataAdapter.Fill(oDataSet, "DimCustomer")

Me.grdDimCustomer.DataSource = oDataSet
Me.grdDimCustomer.DataMember = "DimCustomer"

' crear columna para imágenes
Dim colImagen As DataGridViewImageColumn = New DataGridViewImageColumn()
colImagen.Name = "DatoImagen"
colImagen.HeaderText = "DatoImagen"

' añadir columna de imagen a la colección del grid
Me.grdDimCustomer.Columns.Add(colImagen)
End Sub

Private Sub grdDimCustomer_CellFormatting(ByVal sender As System.Object,
ByVal e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) Handles
grdDimCustomer.CellFormatting
If Me.grdDimCustomer.Columns(e.ColumnIndex).Name = "DatoImagen" Then
If Me.grdDimCustomer.Rows(e.RowIndex).Cells("Gender").Value = "M" Then
e.Value = New Bitmap("c:\imagenes\libro.gif")
Else
e.Value = New Bitmap("c:\imagenes\NotaAzul.gif")
End If
Else
If Me.grdDimCustomer.Rows(e.RowIndex).Cells("Gender").Value = "M" Then
e.CellStyle.ForeColor = Color.Black
Else
e.CellStyle.ForeColor = Color.Red
End If
End If
End Sub
'////////////////////////////////////////////

Espero que te sirva de ayuda.

Un saludo
Luis Miguel Blanco
http://www.dotnetmania.com


"" wrote:

Es posible :

¿poner una imagen distinta en una columna de un datagridview en
funcion del valor de una tabla (0=error,1=ok...)?

¿y cambiar el color de la fila (si es 0 poner la en rojo, )?

¿como?


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida