Visual Basic - datagridview 中的默认空图像

Visual Basic - Default null image in datagridview

提问人:tnils25 提问时间:11/3/2023 最后编辑:Black cattnils25 更新时间:11/3/2023 访问量:80

问:

我正在尝试替换datagridview中图像列的默认图像 我说的是这个图标:

Image

我应该澄清一下,datagridview 最初是空的,用户自己添加行或从文件中加载单元格。

我觉得我已经搜索了每个线程,甚至问过chatgpt,但我无法得到明确的答案。我还尝试将图像属性设置为我的 png,但这没有任何作用(即使 Visual Studio 建议图像属性设置默认图像,奇怪......

我所要做的就是用空单元格或自定义 png 替换那个丑陋的 X。任何帮助将不胜感激

我尝试使用并且通过将我制作的透明 png 插入到该列的行中来工作。但是,我有一个允许用户添加自己的图像的功能,但这种方法似乎不允许。图像仍为默认 png。代码如下:CellFormatting

Private Sub DataGridView1_CellFormatting(sender As Object, e As DataGridViewCellFormattingEventArgs)
 If e.ColumnIndex = dataGridView1.Columns("Image").Index Then
        Dim customImage As Image = my.resources.dgvnull
        e.Value = my.resources.dgvnull
    End If
End Sub
vb.net DataGridView

评论

1赞 Vector 11/3/2023
看看这个链接 stackoverflow.com/questions/59232259/...
1赞 dr.null 11/3/2023
这是一段非常危险的代码。每次从资源中获取映像时,都会获得一个新实例。在网格中每个单元格触发的事件中执行此操作会用僵尸对象淹没内存。换句话说,内存泄漏。只需处理事件并将该列的样式属性设置为您选择的图像即可。dataGridView1.Columns(“图像”)。DefaultCellStyle.NullValue = my.resources.dgvnull'。CellFormattingLoadNullValueNothing
0赞 tnils25 11/10/2023
dr.null 这确实很好用,但它不会将 null 图像应用于新行,只会将添加的行和已经存在的行应用于新行。所以基本上我的数据网格中的最后一行仍然有 X 图像。
0赞 dr.null 11/12/2023
请给用户寻呼。是,如果将属性设置为 。对于该新行,您需要将图像单元格的属性设置为 。实现网格的事件以执行此操作。.@UserNameAllowUserToAddRowsTrueValueNothingRowsAddedIf e.RowIndex = DataGridView1.NewRowIndex Then DataGridView1(yourImageColumnIndexOrName, e.RowIndex).Value = Nothing

答: 暂无答案