求各位大神帮帮忙啊,不知道哪里错了,本人第一次发帖

时间:2021-10-25 14:16:05
求各位大神帮帮忙啊,不知道哪里错了,本人第一次发帖
我想在这个datagridview里面添加一个图片,图片是画上去的,运行一下就成这个样子了。
求各位大神帮帮忙啊,不知道哪里错了,本人第一次发帖

17 个解决方案

#2


把Connect类的相关代码贴过来看下

#3


另外,datagridview对应的“地址”列是怎么设置的?

#4


可以考虑将图片放到资源文件里,如下:

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; 
        }  


或者,datatable图片列改用byte[]试下。

#5


引用 3 楼 从事CSharp程序开发的回复:
另外,datagridview对应的“地址”列是怎么设置的?

一个dataset读取数据库

#6


引用 4 楼 ajianchina的回复:
可以考虑将图片放到资源文件里,如下:

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; 
        }  


或者,datatable图片列改用byte[]试下。

放在了debug里面

#7


引用 5 楼 weixin_42197545 的回复:
一个dataset读取数据库

地址列也是对应个bitmap对象吗?

#8


引用 7 楼 lyq8376 的回复:
Quote: 引用 5 楼 weixin_42197545 的回复:

一个dataset读取数据库

地址列也是对应个bitmap对象吗?

对啊  图表列我是画上去的  下面这个是填充这个DataSet类。 sqlhelp 是一个帮助类。这个不用截图了吧,
求各位大神帮帮忙啊,不知道哪里错了,本人第一次发帖

#9


把datatable里的图片里类型改为byte[]试试

#10


引用 9 楼 yuankaiwsl 的回复:
把datatable里的图片里类型改为byte[]试试

换了以后变成了还是那样,还是没有画上去,就跟我刚开始的时候是一样的

#11


求各位大神帮帮忙啊,不知道哪里错了,本人第一次发帖
我的结果想是这样的,就是在查出数据之后隐藏第一列,这个实现方式就是在后面增加一个图片列,直接把图片赋上去。这个是找别人帮忙解决的,但是自己的问题还是没有解决。

#12


选择一般都是复选框,做成图片列的目的是什么?

#13


引用 12 楼 lyq8376 的回复:
选择一般都是复选框,做成图片列的目的是什么?

用户在更换地址的时候,会弹出来一个这个,点击后面的图标就会更换

#14


引用 13 楼 weixin_42197545 的回复:
用户在更换地址的时候,会弹出来一个这个,点击后面的图标就会更换

如果地址项不是很多的话,建议改成下拉框选择

#15


显示图片的列应是 DataGridViewImageColumn 类型
DataGridView 绑定数据源后,仍需逐行对该列绑定图片(从文件名或byte[]创建 Bitmap对象,你会的)
类似这样 BindImageDataGridView.Rows[i].Cells["image"].Value = new Bitmap(dt.Rows[i]["imagePath"].ToString().Trim());
因为对象需要实例化,而 C# 并不知道对象的具体来源,所以不能替你完成实例化工作

#16


在DataTable里图片列你怎么赋的值?

#17


该回复于2018-05-19 11:32:48被管理员删除

#1


#2


把Connect类的相关代码贴过来看下

#3


另外,datagridview对应的“地址”列是怎么设置的?

#4


可以考虑将图片放到资源文件里,如下:

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; 
        }  


或者,datatable图片列改用byte[]试下。

#5


引用 3 楼 从事CSharp程序开发的回复:
另外,datagridview对应的“地址”列是怎么设置的?

一个dataset读取数据库

#6


引用 4 楼 ajianchina的回复:
可以考虑将图片放到资源文件里,如下:

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; 
        }  


或者,datatable图片列改用byte[]试下。

放在了debug里面

#7


引用 5 楼 weixin_42197545 的回复:
一个dataset读取数据库

地址列也是对应个bitmap对象吗?

#8


引用 7 楼 lyq8376 的回复:
Quote: 引用 5 楼 weixin_42197545 的回复:

一个dataset读取数据库

地址列也是对应个bitmap对象吗?

对啊  图表列我是画上去的  下面这个是填充这个DataSet类。 sqlhelp 是一个帮助类。这个不用截图了吧,
求各位大神帮帮忙啊,不知道哪里错了,本人第一次发帖

#9


把datatable里的图片里类型改为byte[]试试

#10


引用 9 楼 yuankaiwsl 的回复:
把datatable里的图片里类型改为byte[]试试

换了以后变成了还是那样,还是没有画上去,就跟我刚开始的时候是一样的

#11


求各位大神帮帮忙啊,不知道哪里错了,本人第一次发帖
我的结果想是这样的,就是在查出数据之后隐藏第一列,这个实现方式就是在后面增加一个图片列,直接把图片赋上去。这个是找别人帮忙解决的,但是自己的问题还是没有解决。

#12


选择一般都是复选框,做成图片列的目的是什么?

#13


引用 12 楼 lyq8376 的回复:
选择一般都是复选框,做成图片列的目的是什么?

用户在更换地址的时候,会弹出来一个这个,点击后面的图标就会更换

#14


引用 13 楼 weixin_42197545 的回复:
用户在更换地址的时候,会弹出来一个这个,点击后面的图标就会更换

如果地址项不是很多的话,建议改成下拉框选择

#15


显示图片的列应是 DataGridViewImageColumn 类型
DataGridView 绑定数据源后,仍需逐行对该列绑定图片(从文件名或byte[]创建 Bitmap对象,你会的)
类似这样 BindImageDataGridView.Rows[i].Cells["image"].Value = new Bitmap(dt.Rows[i]["imagePath"].ToString().Trim());
因为对象需要实例化,而 C# 并不知道对象的具体来源,所以不能替你完成实例化工作

#16


在DataTable里图片列你怎么赋的值?

#17


该回复于2018-05-19 11:32:48被管理员删除