2012-03-20 9 views
6

estoy trabajando en un proyecto de unión WindowsForm y en mi forma tengo un DataGridView con un DataGridViewImageColumn que debe mostrar el estado de la fila (activado/desactivado) utilizando una imagen.Muestra la imagen en un campo de texto DataGridViewImageColumn

Tengo un DataTable que ato a mi cuadrícula de datos. En esta tabla hay una columna que es el estado de cada fila y es un campo de texto.

¿Cómo puedo vincular esta columna al DataGridViewImageColumn que muestra la imagen de la derecha?

Respuesta

13

Cada vez que tengo preguntas sobre cómo hacer cosas en un DataGridView consulto primero las preguntas frecuentes de Microsoft.

http://www.windowsclient.net/Samples/Go%20To%20Market/DataGridView/DataGridView%20FAQ.doc

Normalmente lo que hago en esa situación es controlar el evento CellFormatting para ajustar la imagen en base al valor de la celda.

Así que me gustaría guardar mis imágenes en algo así como una lista de imágenes, y luego tener el código en CellFormatting como la siguiente:

private void dgv_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) 
{ 
    if (dgv.Columns[e.ColumnIndex].Name == "status") 
    { 
     if (e.Value != null) 
     { 
      if (e.Value.ToString() == "1") 
      { 
       e.Value = imageList1.Images[1]; 
      } 
      else 
      { 
       e.Value = imageList1.Images[2]; 
      } 
     } 
    } 
} 
+0

Gracias por su sugerencia! – davioooh

+0

@UWSkeletor - (Sé que la publicación es antigua) ¿No se ejecutará este código 2 veces? Una vez en el evento de formateo inicial de la celda y luego cuando el valor se establece en la imagen. ¿Por qué no hacerlo en el evento completo de enlace de datos? – Stix

Cuestiones relacionadas