[英]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.