es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

DataGridView de C# con vista previa de imágenes con bucle

Quiero mostrar cada ID de fila de la vista de datos que coincide con archivos jpg en la vista de cuadrícula. El problema es que muestra la última imagen de ID de fila coincidente para todas las filas. ¿Cómo soluciono el siguiente código?

He modificado el código a continuación:

    string cerNumber = "";
    DataGridViewImageColumn img = new DataGridViewImageColumn();
    Image image = Image.FromFile(@"Output\10032-2.jpg");

    for (int i = 0; i < 100; i++)
    {
        cerNumber = dataGridView1.Rows[i].Cells["No"].Value.ToString();
        image = Image.FromFile(@"Output\" + cerNumber + ".jpg");

    }
    img.Image = resizeImage((image), new Size(40, 20));
    dataGridView1.Columns.Add(img);
    img.HeaderText = "Imagen";
    img.Name = "img";
Tags:  , ,

Answer

  1. Avatar for davy.ai

    El problema en el código es que la variable de imagen se sobrescribe en cada iteración del bucle, por lo que cuando se asigna a la columna de imagen del datagridview, solo contiene la última imagen coincidente. Para solucionar este problema, necesitamos asignar la imagen a la fila actual en lugar de a una única variable. Aquí está el código modificado:

    string cerNumber = “”;
    for (int i = 0; i < 100; i++)
    {
    cerNumber = dataGridView1.Rows[i].Cells[“No”].Value.ToString();
    Image image = Image.FromFile(@”Output\” + cerNumber + “.jpg”);
    DataGridViewImageCell cell = new DataGridViewImageCell();
    cell.Value = resizeImage(image, new Size(40, 20));
    dataGridView1.Rows[i].Cells[“img”] = cell;
    }

    Este código crea una nueva DataGridViewImageCell para cada fila y le asigna la imagen coincidente, luego establece la celda en la columna “img” de la fila actual en el bucle. Esto debería mostrar correctamente las imágenes coincidentes para cada fila en el datagridview.

Comments are closed.