Texto e imagen en celda de DataGridView (codigo)
Publicado por Preguntador VB.NET (22 intervenciones) el 24/05/2007 10:56:49
Hace dias, puse un mensaje para intentar resolver algo sobre un codigo interesante que encontre y
Harold V. me ayudo (gracias de nuevo). No se de quien es pero os lo pondre porque creo que merece
la pena compartirlo.
A continuacion os describo como crear columnas en un control DataGridView donde se pueden incluir
imagen y texto en una misma celda (el control no dispone de esa propiedad). El codigo esta
escrito en VB 2005, no se si funciona en 2003.
En vuestro proyecto, añadis dos nuevas clases, una llamada TextAndImageColumn.vb y otra llamada
TextAndImageCell.vb (en los siguientes dos mensajes os pongo el codigo de esas dos clases).
Luego añadis un control DataGridView al formulario e incluis este codigo para crear dos columnas
(yo lo he puesto en el evento Load del formulario):
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
'Se crea la primera columna
Dim Col0 As New TextAndImageColumn
Col0.Image = Image.FromFile("C:\Imagen.bmp")
Me.DataGridView1.Columns.Insert(0, Col0)
'Se crea la segunda columna
Dim Col1 As New TextAndImageColumn
Col1.Image = Image.FromFile("C:\Imagen.bmp")
Me.DataGridView1.Columns.Insert(1, Col1)
End Sub
Para cambiar el texto y la imagen de una celda, debeis utilizar este codigo (yo modifico la celda
que esta en la primera fila y segunda columna):
DirectCast(DataGridView1.Item(1, 0), TextAndImageCell).Value = "Nuevo texto"
DirectCast(DataGridView1.Item(1, 0), TextAndImageCell).Image =
Image.FromFile("C:\NuevaImagen.bmp")
NOTA: Para cambiar unicamente el texto de una celda tambien podeis utilizar el codigo que se
emplea para cambiarlo en una celda de una columna de texto normal (no se puede cambiar la imagen
mediante este metodo):
Me.DataGridView1.Rows(0).Cells(1).Value = "Nuevo texto"
Harold V. me ayudo (gracias de nuevo). No se de quien es pero os lo pondre porque creo que merece
la pena compartirlo.
A continuacion os describo como crear columnas en un control DataGridView donde se pueden incluir
imagen y texto en una misma celda (el control no dispone de esa propiedad). El codigo esta
escrito en VB 2005, no se si funciona en 2003.
En vuestro proyecto, añadis dos nuevas clases, una llamada TextAndImageColumn.vb y otra llamada
TextAndImageCell.vb (en los siguientes dos mensajes os pongo el codigo de esas dos clases).
Luego añadis un control DataGridView al formulario e incluis este codigo para crear dos columnas
(yo lo he puesto en el evento Load del formulario):
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
'Se crea la primera columna
Dim Col0 As New TextAndImageColumn
Col0.Image = Image.FromFile("C:\Imagen.bmp")
Me.DataGridView1.Columns.Insert(0, Col0)
'Se crea la segunda columna
Dim Col1 As New TextAndImageColumn
Col1.Image = Image.FromFile("C:\Imagen.bmp")
Me.DataGridView1.Columns.Insert(1, Col1)
End Sub
Para cambiar el texto y la imagen de una celda, debeis utilizar este codigo (yo modifico la celda
que esta en la primera fila y segunda columna):
DirectCast(DataGridView1.Item(1, 0), TextAndImageCell).Value = "Nuevo texto"
DirectCast(DataGridView1.Item(1, 0), TextAndImageCell).Image =
Image.FromFile("C:\NuevaImagen.bmp")
NOTA: Para cambiar unicamente el texto de una celda tambien podeis utilizar el codigo que se
emplea para cambiarlo en una celda de una columna de texto normal (no se puede cambiar la imagen
mediante este metodo):
Me.DataGridView1.Rows(0).Cells(1).Value = "Nuevo texto"
Valora esta pregunta


0