mostrar imagen en columna de datagriview

27/07/2007 - 20:51 por Limberg | Informe spam
Cómo puedo mostrar una imagen en una columna de detagridview dependiendo de
en valor logico.

Gracias por contestar.
Atte. Limberg.

Preguntas similare

Leer las respuestas

#1 Luis Miguel Blanco
30/07/2007 - 08:14 | Informe spam
Hola Limberg

Puedes utilizar un objeto de la clase DataGridViewImageColumn para crear una
columna que contenga imágenes. Una vez creada esta columna, deberás añadirla
a la colección de columnas del DataGridView. Posteriormente, para establecer
la imagen que necesites en función de un valor o expresión lógica, puedes
emplear el evento CellFormatting del control grid, de forma parecida al
bloque de código que te acompaño como ejemplo:

//-
private void Form1_Load(object sender, EventArgs e)
{
SqlConnection cnConexion;
cnConexion = new SqlConnection();
cnConexion.ConnectionString = "Data Source=localhost;" +
"Initial Catalog=Northwind;" +
"Integrated Security=True";

string sSQL;
sSQL = "SELECT ProductID, ProductName, UnitsInStock ";
sSQL += "FROM Products";

SqlCommand cmdComando = new SqlCommand(sSQL, cnConexion);
SqlDataAdapter daAdaptador = new SqlDataAdapter(cmdComando);
DataSet ds = new DataSet();
daAdaptador.Fill(ds, "Products");
this.dgvGrid.DataSource = ds;
this.dgvGrid.DataMember = "Products";
DataGridViewImageColumn colImagen = new DataGridViewImageColumn();
colImagen.Name = "colImagen";
this.dgvGrid.Columns.Add(colImagen);
}

private void dgvGrid_CellFormatting(object sender,
DataGridViewCellFormattingEventArgs e)
{
if (this.dgvGrid.Columns[e.ColumnIndex].Name == "colImagen")
{
if
((short)(this.dgvGrid.Rows[e.RowIndex].Cells["UnitsInStock"].Value) > 30)
{
Bitmap oBmp = new Bitmap(@"c:\cubo\OK.jpg");
e.Value = oBmp;
}
else
{
Bitmap oBmp = new Bitmap(@"c:\cubo\Incorrecto.jpg");
e.Value = oBmp;
}
}
}
//-

Espero que te sirva de ayuda.

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


"Limberg" wrote:

Cómo puedo mostrar una imagen en una columna de detagridview dependiendo de
en valor logico.

Gracias por contestar.
Atte. Limberg.



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