使用C#和Webforms,代码如下:
DataGridViewImageColumn img = new DataGridViewImageColumn();
string path = "path" + file;
Image image = Image.FromFile(path);
img.Image = image;
DataGridView.Columns.Add(img);
img.HeaderText = "Picture";
img.Name = "picture";
我的问题是下一个问题。此代码无效... DataGridview未显示图像。 当我调试这段代码时,路径是正确的,我在img元素中正确加载了Image。更重要的是,当我使用多个图像时,DataGridView显示的是我添加的相同数量的列。但是根本没有显示任何图像,我只能在红十字会看到典型的白色方块......
有什么问题?
答案 0 :(得分:5)
您可以将图像添加到Cells
,如下所示:
dataGridView1[yourColumn, yourRow].Value = Image.FromFile(path);
当然,您可以使用任何其他图片来源。这样您就可以将不同的图片加载到每个Row
..
注意:如果您真的只想为每个Row
添加相同图片,可以使用您的代码但您需要添加真实行。
当AllowUserToAddRows
开启时,不会显示在最后一行,但会显示在您添加的所有其他行上。
答案 1 :(得分:1)
共享最终的代码解决方案是@TaW 有人问我:
private void dataGridView1_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e)
{
codigo = int.Parse(dataGridView1.CurrentRow.Cells[0].Value.ToString());
Piso formPiso = new Piso();
var consultaPisoAlquiler = from piso in contexto.pisosAlquiler
where piso.codigo == codigo
select new
{
fotos = piso.fotos.Split(','),
zona = piso.zona,
mm = piso.mm,
descripcion = piso.descripcion,
precio = piso.precio,
estado = piso.estado
};
formPiso.txtCodigo.Text = codigo.ToString();
formPiso.txtDescripcion.Text = consultaPisoAlquiler.First().descripcion.ToString();
formPiso.txtEstado.Text = consultaPisoAlquiler.First().estado.ToString();
formPiso.txtMm.Text = consultaPisoAlquiler.First().mm.ToString();
formPiso.txtPrecio.Text = consultaPisoAlquiler.First().precio.ToString();
formPiso.txtZona.Text = consultaPisoAlquiler.First().zona.ToString();
formPiso.DGVPisoFotos.AutoGenerateColumns = false;
formPiso.DGVPisoFotos.Columns.Clear();
DataGridViewImageColumn img = new DataGridViewImageColumn();
img.Width = 230;
img.HeaderText = "Fotos";
formPiso.DGVPisoFotos.Columns.Add(img);
int i = 0;
foreach (var foto in consultaPisoAlquiler.First().fotos)
{
formPiso.DGVPisoFotos.Rows.Add();
string path = "E:/WorkSpaces/MVS/ProyectoJoseph/" + foto;
Bitmap image = (Bitmap)Image.FromFile(path);
Bitmap imageRS = new Bitmap(image, new Size(230, 230));
formPiso.DGVPisoFotos[0, i].Value = imageRS;
formPiso.DGVPisoFotos.Rows[i].Height = 230;
i++;
}
formPiso.ShowDialog();
}