簡體   English   中英

在C#中對DataGridView進行數據綁定后,無法將圖像添加到新圖像列

[英]Cannot add images to new image column after databinding DataGridView in C#

我對DataGridView進行數據綁定后,無法設置圖像列單元格的圖像。

如果我在不對dgv進行數據綁定的情況下添加image列和image,則一切正常。

這是我的代碼:

public void LoadDgvDocuments()
{
    var select = "SELECT RegistryTypeId, RegistryTypeDescription FROM RegistryType";
    SqlConnection c = SqlDbConnection.GetConnection();
    var dataAdapter = new SqlDataAdapter(select, c);
    var commandBuilder = new SqlCommandBuilder(dataAdapter);
    var ds = new DataSet();
    dataAdapter.Fill(ds);
    dgvDocuments.ReadOnly = true;
    dgvDocuments.DataSource = ds.Tables[0];
    dgvDocuments.Columns[0].Width = 100;
    dgvDocuments.Columns[1].Width = 250;
    AddDeleteIconColumns();
    dgvDocuments.Columns[2].Width = 50;
}

public void AddDeleteIconColumns()
{
    DataGridViewImageColumn ic = new DataGridViewImageColumn();
    ic.HeaderText = "Img";
    ic.Image = null;
    ic.Name = "cImg";
    ic.Width = 100;
    dgvDocuments.Columns.Add(ic);
    foreach (DataGridViewRow row in dgvDocuments.Rows)
    {
        DataGridViewImageCell cell = row.Cells[2] as DataGridViewImageCell;
        cell.Value = (System.Drawing.Image)Properties.Resources.Icon_delete;
    }
}

當我使用代碼時,我得到以下信息:

不工作

當我不進行數據綁定而只加載圖像列時,一切正常:

工作中

可能是因為dgv中存在問題。 因為當我檢查時列號被弄亂了:

列編號混亂

我只需要在圖像列中顯示圖像。

原來這是MDI表單和Dgv的問題,如下所示:

查看描述問題的文章

使用此代碼,它可以工作:

  private void dgvDocuments_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
    {  
        if (dgvDocuments.ColumnCount < 5)
        {
            InsertDocumentColumn();
        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM