【问题标题】:How to Add the image and text in datagridview cell如何在 datagridview 单元格中添加图像和文本
【发布时间】:2013-01-06 17:54:14
【问题描述】:

实际上我想根据我的要求自定义 Datagridview 单元格。 我必须将文本和图像添加到特定列的 Datagridview 行。 见下图

谁能帮我举个例子? 谢谢。

【问题讨论】:

  • 如果你想获得那种外观,WPF 是一个更好的选择,但你也可以在 winforms 中自定义你的 datagridview,但据我所知,这种外观是不可能/很难做到的在winforms中实现

标签: vb.net image datagridview


【解决方案1】:

试试这个

Public Class Form1
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    DataGridView1.ColumnCount = 3
    DataGridView1.Columns(0).Name = "Product ID"
    DataGridView1.Columns(1).Name = "Product Name"
    DataGridView1.Columns(2).Name = "Product_Price"

    Dim row As String() = New String() {"1", "Product 1", "1000"}
    DataGridView1.Rows.Add(row)
    row = New String() {"2", "Product 2", "2000"}
    DataGridView1.Rows.Add(row)
    row = New String() {"3", "Product 3", "3000"}
    DataGridView1.Rows.Add(row)
    row = New String() {"4", "Product 4", "4000"}
    DataGridView1.Rows.Add(row)

    Dim img As New DataGridViewImageColumn()
    Dim inImg As Image = Image.FromFile("Image Path")
    img.Image = inImg
    DataGridView1.Columns.Add(img)
    img.HeaderText = "Image"
    img.Name = "img"

    End Sub
  End Class

【讨论】:

    【解决方案2】:

    您可以将 DataGridView 单元格动态转换为 DataGridViewTextBoxCell() 并将文本值显示到该列。下面是给你一些基本概念的代码示例。

    Private Sub button1_Click(sender As Object, e As EventArgs)
        dataGridView1.Rows(3).Cells("ImageCol") = New DataGridViewTextBoxCell()
        dataGridView1.Rows(3).Cells("ImageCol").Value = "Hello.."
    End Sub
    

    【讨论】:

      【解决方案3】:
             Dim dt As New DataTable
      
              Dim imageColumn As New DataColumn
              imageColumn.ColumnName = "ActualImage"
              imageColumn.DataType = GetType(System.Drawing.Image)
              dt.Columns.Add(imageColumn)
      
              For Each row As DataRow In dt.Rows
                  row("ActualImage") = System.Drawing.Image.FromFile(row("Image_Path"))
              Next
      
              dt.AcceptChanges()
      
      
              Dim dgvImageColumn As New DataGridViewImageColumn
              dgvImageColumn.DataPropertyName = "ActualImage"
              dgvImageColumn.Name = "ActualImage"
              dgvImageColumn.ImageLayout = DataGridViewImageCellLayout.Zoom
              DataGridView1.Columns.Add(dgvImageColumn)
      
              DataGridView1.DataSource = dt
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-11
        • 1970-01-01
        相关资源
        最近更新 更多