陈全鸡问我有关DataGridView显示图片的问题,DataGridView是和DataTable绑定的,然后他用IO去读出来的stream又不能存放在DataTable里,怎么办呢?开始我也很困惑,我把DataTable的列格式换成byte,还是没法。最后突然想到把图片嵌入资源文件里,这样又不用IO了,真是好想法。然后开始动手
using System.Resources;
using System.Reflection;
private DataTable CreateTab()
{
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("ID"));
dt.Columns.Add(new DataColumn("Name"));
dt.Columns.Add(new DataColumn("State", typeof(System.Object)));
ResourceManager rm = new ResourceManager("Test1.Res", Assembly.GetEntryAssembly());
Image image = (Image)rm.GetObject("_01");
for (int i = 1; i < 20; i++)
{
DataRow drs;
drs = dt.NewRow();
drs[0] = i;
drs[1] = "设备" + i.ToString();
drs[2] = image;
dt.Rows.Add(drs);
}
return dt;
}
然后我编译,没错,心中大喜,然后调试,通过了。汗,居然这样也可以!比较happy哈!
网上那些貌似高手的说存什么路径什么的,还要用CellFomating事件去格式化,太麻烦了吧!
我终于提出了一个新方案(不知道是不是新的了)。
using System.Resources;
using System.Reflection;
private DataTable CreateTab()
{
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("ID"));
dt.Columns.Add(new DataColumn("Name"));
dt.Columns.Add(new DataColumn("State", typeof(System.Object)));
ResourceManager rm = new ResourceManager("Test1.Res", Assembly.GetEntryAssembly());
Image image = (Image)rm.GetObject("_01");
for (int i = 1; i < 20; i++)
{
DataRow drs;
drs = dt.NewRow();
drs[0] = i;
drs[1] = "设备" + i.ToString();
drs[2] = image;
dt.Rows.Add(drs);
}
return dt;
}
然后我编译,没错,心中大喜,然后调试,通过了。汗,居然这样也可以!比较happy哈!
网上那些貌似高手的说存什么路径什么的,还要用CellFomating事件去格式化,太麻烦了吧!
我终于提出了一个新方案(不知道是不是新的了)。