【问题标题】:show image in proper column of data gridview in windows application在 Windows 应用程序的数据网格视图的正确列中显示图像
【发布时间】:2014-01-21 06:53:17
【问题描述】:

我正在开发 vb.net windows 应用程序..我正在使用数据源填充我的数据网格视图..我在加载事件中编写了如下代码:

Dim cd As SqlCommandBuilder = New SqlCommandBuilder(adapter)
        adapter = New SqlDataAdapter("select c.cid,c.CompanyName,d.dtId,d.dtName as 
Department,d.dtPhone as Phone,d.dtEmail as Email,d.empimage from CompanyMaster_tbl c 
join  DepartmentMaster_tbl d on c.Cid=d.cId order by cid", con.connect)
        dt1 = New DataTable
        bSource = New BindingSource
        adapter.Fill(dt1) 'Filling dt with the information from the DB
        bSource.DataSource = dt1
        gv.DataSource = bSource
        gv.Columns("cid").Visible = False
        gv.Columns("dtId").Visible = False
  Dim img As New DataGridViewImageColumn
        img.HeaderText = "image"
        gv.Columns.Insert(6, img)

现在我的 gridview 显示如下:

我想在我的**image** 列中显示我的图像。我该怎么做?

【问题讨论】:

  • 如果您已经将数据源与 gridview 绑定并且它将显示图像,那么您为什么要添加另一列。如果要更改标题文本,请通过代码进行更改。 gv.Columns("empimage").HeaderText = "image"
  • 先生,我不想添加另一列..我想在“图像”列中获取我的图像..我的意思是需要在第 4 列中获取图像
  • img.DataPropertyName = "[PropertyName]";

标签: vb.net winforms datagridview


【解决方案1】:

分配数据源后,添加列“gv.Columns.Insert(6, img)”。对于此列数据不存在。您需要手动将图像添加到此列。

for(int i = 0; i < gv.Rows.Count; i++)
{
    gv.Rows[i]["image"] =  gv.Rows[i]["empimage"];
}

【讨论】:

  • 先生,我在 for 循环中给出了这样的代码:gv.Rows(i).Cells(6) = gv.Rows(i).Cells(7) 但出现错误:提供的单元已经属于到一个网格。此操作无效。
  • 你需要像这样使用 gv.Rows(i).Cells(6).value = gv.Rows(i).Cells(7).value
  • 同时给出此错误:系统格式异常“从 System.string 到 system.drawing.image 的无效转换
  • 您的代码运行良好,错误来自其他代码
猜你喜欢
  • 1970-01-01
  • 2021-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-20
  • 1970-01-01
  • 2018-12-08
相关资源
最近更新 更多