【问题标题】:DataGridView image column issue on sortingDataGridView图像列排序问题
【发布时间】:2015-11-11 15:07:46
【问题描述】:

我有一个 DataGridView,它有一个 image 列。 image 地址是从同一行的一个单元格中读取的,然后显示出来。

当我对列进行排序时,图像就会消失。

我正在使用 Visual Studio 2010 并使用 C# 进行编码。使用 oledb 方法从访问数据库中检索数据。

填充image 列的代码如下:

Image Image_File = Image.FromFile("d:\\2.jpg");

DataGridViewAutoSizeColumnMode.Fill; 

for (int i=0;i < info_Grid.RowCount;i++)  
{ 

   if (Info_Grid.Rows[i].Cells[6].Value !=" ")  
   {  
       Image_File =  Image.FromFile(Info_Grid.Rows[i].Cells[5].Value.ToString());  
       Info_Grid.Rows[i].Cells["Image_Col"].Value = Image_File;  
   }                                                                              
}  
Info_Grid.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;

我该如何解决?

谢谢

【问题讨论】:

  • 这里真的需要更多细节。代码、使用的技术、上下文?
  • 只显示一个图像,它的地址存储在每行gridview的一个单元格中。如果我通过单击列标题对网格视图进行排序,则不再显示图像。详细说明什么?
  • 排序的行是什么?在旁边加上注释,以便清楚。
  • 你误会了,排序不是我编码的,只是 DataGridView 的默认排序!可以通过一行代码禁用它,但我不想这样做。我需要它。我说清楚了吗?
  • 禁用后可以手动触发吗?也许结果会有所不同。

标签: datagridview datagridviewimagecolumn


【解决方案1】:

我知道这是旧的,但今天早上我被这个困扰了。对 dataviewgrid 进行排序时,运行时添加的所有图像都会丢失。内置的 DataGridView 排序打破了这一点。

示例

>>

对我来说,我只是将我的图像添加代码添加到 DGV.Sorted 事件中。不得不这样做感觉有点不对,但我不知道为什么这些图像首先会在排序时丢失。

  private void dgvChecks_Sorted(object sender, EventArgs e)
    {
        foreach (DataGridViewRow row in dgvChecks.Rows)
            {
                if (row.Cells["Valid"].Value.ToString() == "True")
                    row.Cells[0].Value = (System.Drawing.Image)Properties.Resources.check;
                else
                    row.Cells[0].Value = (System.Drawing.Image)Properties.Resources.delete;
            }           
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-11
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多