不要在DataGridViewCellFormatting设置列的值啊,因为每当DataGridView发生重绘时便执行一次,这样肯定会闪烁了以下是从数据源绑定的DataTable dt = new DataTable();
dt.Columns.Add("pic",typeof(Image));
for (int i = 0; i < 5; i++)
{
DataRow row = dt.NewRow();
row["pic"] = GetImage(strPath);
dt.Rows.Add(row);
}DataGridViewImageColumn img = new DataGridViewImageColumn();
img.HeaderText = "产品图片";
img.ImageLayout = DataGridViewImageCellLayout.Zoom;
img.Width = 130;
img.DataPropertyName = "pic";
dgvProduct.Columns.Add(img);
dgvProduct.AutoGenerateColumns = false;
dgvProduct.DataSource = dt;
dt.Columns.Add("pic",typeof(Image));
for (int i = 0; i < 5; i++)
{
DataRow row = dt.NewRow();
row["pic"] = GetImage(strPath);
dt.Rows.Add(row);
}DataGridViewImageColumn img = new DataGridViewImageColumn();
img.HeaderText = "产品图片";
img.ImageLayout = DataGridViewImageCellLayout.Zoom;
img.Width = 130;
img.DataPropertyName = "pic";
dgvProduct.Columns.Add(img);
dgvProduct.AutoGenerateColumns = false;
dgvProduct.DataSource = dt;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货