【问题标题】:VB.net - Dynamically created column with an Image not displaying image in new row in datagridviewVB.net - 动态创建的列,其中一个图像未在 datagridview 的新行中显示图像
【发布时间】:2015-11-18 11:41:22
【问题描述】:

我正在动态构建一个网格,并希望将删除图像作为最后显示的列。

图像在我添加的行上显示正常,但新行没有图像。我错过了什么?

当我运行以下代码时,我得到一个带有图像的行和第二个带有“缺少图像”图标的空行:

Public Class Testing
Private dtData As New DataTable

Private Sub Testing_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    LoadMyGrid()
End Sub

Private Sub LoadMyGrid()
    Try


        Dim img As New DataGridViewImageColumn
        Dim inImg As Image = My.Resources.delete
        img.Image = inImg

        dtData.Columns.Add("LanguageId")
        dtData.Columns.Add("Language")
        dtData.Rows.Add(1, "English")

        '--- Load the grid
        With Me.dgv1
            .Columns.Clear()

            .DataSource = dtData
            .Columns(0).Visible = False

            dgv1.Columns.Add(img)
            img.Width = 40
            img.Name = "DELETE"

            .ClearSelection()
        End With
    Catch ex As Exception
        MsgBox("You hit an error")
    End Try
End Sub

End Class

感谢您的帮助!

【问题讨论】:

    标签: vb.net datagridviewimagecolumn


    【解决方案1】:
    1. 添加一个变量来存储DELETE列的位置

         Private dgv1DeleteCellIndex as integer = -1
      
    2. 在 LoadGrid 中,设置 dgv1DeleteCellIndex,在添加 DELETE 列之前找到它

         dgv1DeleteCellIndex = dgv1.Columns.Count
      
    3. 添加DELETE列后循环遍历列并将单元格值设置为图像

      For Each row As DataGridViewRow In dgv1.Rows
         row.Cells(dgv1DeleteCellIndex).Value = My.Resources.delete_16x16
      Next
      
    4. 更新 RowsAdded 事件上的单元格图像以继续更新用户添加的任何其他新行上的图像。

      Private Sub dgv1_RowsAdded(sender As Object, e As System.Windows.Forms.DataGridViewRowsAddedEventArgs) Handles dgv1.RowsAdded
         If dgv1DeleteCellIndex <= 1 Then Exit Sub
      
         CType(sender, DataGridView).Rows(e.RowIndex).Cells(dgv1DeleteCellIndex).Value = My.Resources.delete_16x16
      End Sub
      

    【讨论】:

      猜你喜欢
      • 2020-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多