Winforms 只有在Windows 10计算机上部署时,才会导致图像列上的数据网格错误?

Winforms 只有在Windows 10计算机上部署时,才会导致图像列上的数据网格错误?,winforms,datagridview,datagrid,datagridviewcolumn,datagridviewimagecolumn,Winforms,Datagridview,Datagrid,Datagridviewcolumn,Datagridviewimagecolumn,我有一个带有数据网格的C#windows窗体应用程序。网格的一列是图像列,我在其中放置了位图。它在我开发它的Windows 10机器上运行良好,当我在Windows 7机器上部署它时,但在所有其他Windows 10机器上我都会出错。错误是“System.FormatException:单元格的格式化值具有错误的类型”。我无法在开发计算机上重新创建错误,因此我不确定如何找出错误。我认为这可能是因为我在部署它时没有包含一些先决条件(这是一个单击一次的应用程序),但我没有发现缺少任何东西。我想它可能

我有一个带有数据网格的C#windows窗体应用程序。网格的一列是图像列,我在其中放置了位图。它在我开发它的Windows 10机器上运行良好,当我在Windows 7机器上部署它时,但在所有其他Windows 10机器上我都会出错。错误是“System.FormatException:单元格的格式化值具有错误的类型”。我无法在开发计算机上重新创建错误,因此我不确定如何找出错误。我认为这可能是因为我在部署它时没有包含一些先决条件(这是一个单击一次的应用程序),但我没有发现缺少任何东西。我想它可能找不到图像的链接,所以我试着画了它们,但仍然得到了同样的错误。我猜这与我的位图列有关,但我不知道为什么它能在我的机器和Windows7机器上工作,而不能在其他Windows10机器上工作。关于发生了什么和/或如何解决这个问题有什么想法吗

以下是我的网格的设计器:

以下是DefaultCellStyle设置。我认为空值可能是原因。我原来有System.Drawing.Bitmap在里面。我尝试使用null,但仍然得到一个错误。

下面是我如何填充该列的代码

 Bitmap bmpCombineOnly = new Bitmap(1, 1);

 Bitmap bmpYellow = new Bitmap(26, 26);
 Graphics grYellow = Graphics.FromImage(bmpYellow);
 grYellow.DrawEllipse(new Pen(Color.Yellow, 2), 0, 0, 25, 25);
 grYellow.FillEllipse(new SolidBrush(Color.Yellow), 0, 0, 25, 25);

 bmpCombineOnly = bmpYellow;

 foreach (DataGridViewRow row in ItemsInLocationDataGridView.Rows)
 {
     row.Cells["Icon"].Value = bmpCombineOnly;
 }

propertygrid中的NullValue字段适用于文本列,但不适用于图像列。是,它显示字符串“System.Drawing.Bitmap”,但这是BitmapInstance.Tostring()的结果。如果在属性网格中输入某些文本,它将存储该字符串值,该字符串值不适用于需要位图值的单元格。在窗体的设计器文件中找到一行,该行将字符串指定给`Nullvalue,然后将其删除以恢复默认值。因此,您有一个名为
Icon
的列。它甚至用这个名字编译吗?+您正在泄漏图形资源:您创建的任何对象都不会被处理。我没有使用这个:
bmpCombineOnly=bmpYellow。propertygrid中的NullValue字段适用于文本列,但不适用于图像列。是,它显示字符串“System.Drawing.Bitmap”,但这是BitmapInstance.Tostring()的结果。如果在属性网格中输入某些文本,它将存储该字符串值,该字符串值不适用于需要位图值的单元格。在窗体的设计器文件中找到一行,该行将字符串指定给`Nullvalue,然后将其删除以恢复默认值。因此,您有一个名为
Icon
的列。它甚至用这个名字编译吗?+您正在泄漏图形资源:您创建的任何对象都不会被处理。我没有使用这个:
bmpCombineOnly=bmpYellow