无法在datagridview单元格中显示完整图像

时间:2011-08-18 13:35:06

标签: c# .net image datagridview

我有数据网格视图,其中包含列产品名称和产品图片,我正在填充来自数据库的这些值......

我正在使用winforms桌面应用程序.....

我的问题是我无法正确显示datagridview单元格中的图像..请参阅下面的图表total grid view image

我想在该列actual image need to show in every row

中的每个单元格的实际产品图片列中显示此图片

这个任务在webforms中使用datalist控件非常简单,但我不知道如何在网格视图单元格中显示完整图像

任何人都可以帮忙......

非常感谢.......

这是我使用linq查询绑定datagridview的地方..

      private void EquipmentFinder_Load(object sender, EventArgs e)
     {

        var products = from prods in abc.products
                       select new
                       {
                           productid = prods.product_Id,   //0                            
                           productname =  prods.product_Name, //1
                           productimage = prods.product_Image, //2
                           productprice = prods.product_Price,//3
                           productdescr = prods.product_Description, //4

                       };
        productbindingsource.DataSource = products;
        productgridview.DataSource = productbindingsource;
        productgridview.Columns[0].Visible = false;
        productgridview.Columns[3].Visible = false;
        productgridview.Columns[4].Visible = false;
    }

3 个答案:

答案 0 :(得分:9)

将列的ImageLayout设置为Stretch值以解决此问题。

UPDATE:使用以下代码更改ImageLayout属性:

for(int i = 0; i < dataGridView1.Columns.Count; i ++)
                if(dataGridView1.Columns[i] is DataGridViewImageColumn) {
                    ((DataGridViewImageColumn)dataGridView1.Columns[i]).ImageLayout = DataGridViewImageCellLayout.Stretch;
                    break;
                }

答案 1 :(得分:0)

将DataGridViewImageColumn.ImageLayout属性设置为DataGridViewImageCellLayout.Zoom

如果设置为“Stretch”,您的图像将按比例缩放以适合整个单元格。这可能不是你想要的。

设置为缩放以使图形被均匀放大,直到它填充包含单元格的宽度或高度。

默认情况下,该值设置为“Normal”:图形以其原始分辨率居中显示。

答案 2 :(得分:0)

首先右键单击网格转到网格属性,您将获得列(集合)属性,单击该属性。单击图像列中的外观 - 图像布局 - 并选择拉伸属性,您还可以增加图像列的大小。 它在这种情况下真的很有帮助。你不需要这种类型的代码。