C# datagridview 如何显示动态图片,注意是显示动态图片,我现在的问题是,添加进去一个动态图片后却不显示动态、是静止的。求代码,或解决方法!!!!急。。。
请参考下列C# 代码:
private
void
Form2_Load(object
sender, EventArgs e)
{
//
01 如果图片存到数据库的Image字段类型中,用下面的方式直接绑定不需要转换
//
以 Northwind 的 Employees 表为例
//using
(SqlDataAdapter da = new SqlDataAdapter(
//
"SELECT EmployeeID,LastName,FirstName,BirthDate,Photo FROM
Employees",
//
"server=XXY;database=Northwind;Integrated
Security=SSPI"))
//{
//
DataSet ds = new DataSet();
//
da.Fill(ds);
//
BindingSource bs = new BindingSource(ds.Tables[0],
null);
//
this.dataGridView1.DataSource = bs;
//}
//
02 如果数据库中只是存到路径,可以在 Table 中动态添加 Image 类型字段,通过 Url 将图片下载下来,并保存到 Table
中
DataTable dt = new
DataTable();
dt.Columns.Add("Col1",
typeof(Int32));
dt.Columns.Add("Col2",
typeof(String));
dt.Rows.Add(new
object[]
{ 1, "http://i4.social.microsoft.com/Image.avatr?size=ExtraLarge&user=X.X.Y&id=5b725d25-3d39-4379-9c1f-9c97efb4d4b0"
});
dt.Rows.Add(new
object[]
{ 2, "http://i4.social.microsoft.com/Image.avatr?size=ExtraLarge&user=X.X.Y&id=5b725d25-3d39-4379-9c1f-9c97efb4d4b0"
});
//
增加一个字段将 url 转换为 image
dt.Columns.Add("Col3",
typeof(Image));
WebClient webClient = new
WebClient();
foreach
(DataRow row in
dt.Rows)
{
//
如果图片在本地,可不用下载直接使用
Image.FromFile
string
fileName = Path.Combine(@"C:\",
Guid.NewGuid().ToString() + ".jpg");
webClient.DownloadFile(row["Col2"].ToString(),
fileName);
row["Col3"]
= Image.FromFile(fileName);
}
BindingSource bs = new
BindingSource(dt, null);
this.dataGridView1.DataSource
= bs;
}