DataGridView控件中显示图片及其注意事项
来源:互联网 发布:网络推广部门组建方案 编辑:程序博客网 时间:2024/05/16 05:51
陈希章
原文地址:http://www.cnblogs.com/chenxizhang/archive/2008/07/09/1238571.html原文标题:DataGridView控件中显示图片及其注意事项
原文发表:2008/7/8 22:04:00
windows Forms编程里面有一个DataGridView控件,它不光是可以显示数据,可以显示按钮,复选框,甚至还可以显示图片。这些图片可以来自于数据库(用二进制的方式存储的),也可以来自文件系统。下面是一个例子
【假设你有一个windows程序,并且窗体上有一个DataGridView控件,这个控件只有一个列(名称为Image),类型为DataGridViewImageColumn】
public Form1()
{
InitializeComponent();
GetData();
}
private void GetData()
{
foreach (string s in Directory.GetFiles(@"E:/My Documents/图片收藏/表情","*.gif"))
{
this.demoGrid.Rows.Add(s);//注意,虽然字段类型是Image,但我们这里只给它传一个图片路径过去,真正读取图片是由下面的事件处理程序做的
}
}
///
/// 这个事件就在尝试对单元格进行格式化的时候触发。在这里设置真正的图片
///
///
///
private void demoGrid_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (demoGrid.Columns[e.ColumnIndex].Name.Equals("Image"))
{
string path = e.Value.ToString();
e.Value = GetImage(path);
}
}
public System.Drawing.Image GetImage(string path)
{
return System.Drawing.Image.FromFile(path);
}
以上的代码确实可以实现我们的目的,就是从一个目录中把所有的gif图片读取出来,然后显示在DataGridView上面。如下图所示
但是用Image.FromFile这个语法加载图片有一个很大的问题:该文件就被我们当前进程锁定了。不光是别的程序无法使用它,如果当前程序需要将其删除(例如我们想删除某行数据的同时把图片也删除掉),都会报告一个错误
为了解决这个问题,可以修改一下GetImage方法。如下面所示
public System.Drawing.Image GetImage(string path)
{
System.IO.FileStream fs = new System.IO.FileStream(path, System.IO.FileMode.Open);
System.Drawing.Image result = System.Drawing.Image.FromStream(fs);
fs.Close();
return result;
}
作者:陈希章出处:http://blog.csdn.net/chen_xizhang
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
- DataGridView控件中显示图片及其注意事项
- DataGridView控件中显示图片及其注意事项
- DataGridView控件中显示图片及其注意事项
- DataGridView控件中显示图片及其注意事项
- datagridview中显示图片
- DataGridView中显示图片
- C# dataGridView控件中加入comboBox控件及注意事项
- C#:在DataGridView控件中显示数据
- vb.net实现Datagridview控件显示数据库中的图片
- DataGridView显示图片
- DataGridView显示图片
- Visual Basic 2005——如何在DataGridView控件的储存格中同时显示出文字与图片
- C# 中 datagridview控件 在行标题显示行号的方法
- C#中使用DataGridView控件显示数组中的内容
- C#中使用DataGridView控件显示DataTable中的数据
- C# Winform中让DataGridView单元格显示图片
- C# Winform中让DataGridView单元格显示图片
- C#中使用FileUpload上传图片到SQL数据库中以image类型存储并使用Image控件显示注意事项
- 防止SQL注入式攻击的免费工具【转载】
- TechNet Virtual Labs: Business Intelligence
- PerformancePoint Server 2007
- 数据分页技术
- 在windows Forms程序里面实现文件上传
- DataGridView控件中显示图片及其注意事项
- 如何用C#动态生成代码
- 如何在报表中直接使用数据库中存储的图片
- 你真的懂javascript吗
- 为文件夹启用审核
- 批量上传报表的工具
- Drawing Anti-Aliased Text and Graphics:绘制反锯齿文字和图形
- 在VS2008中使用WSE 3.0
- 正则表达式编译