You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB.NET如何检测ListView第四列子项每行字符串长度并修改行背景色

实现方案

核心修改点

  • 原有代码只读取了ListView第一列的内容,需要调整为读取第4列的SubItems(3)属性(ListView列索引从0开始计数,第一列对应索引0,第四列对应索引3)
  • 第四列的多行内容按换行符拆分后逐行校验长度,只要任意一行字符数超过38就触发背景色修改
  • 去掉不必要的行选中操作,直接修改对应行的背景色属性,避免干扰界面正常选中状态

完整可运行代码

' 遍历ListView所有行
For i = 0 To ListView1.Items.Count - 1
    ' 读取第四列内容,索引如果不对可根据实际列顺序调整数值
    Dim targetColumnText As String = ListView1.Items(i).SubItems(3).Text
    ' 按换行符拆分多行内容,兼容Windows/类Unix两种换行格式
    Dim lineArr As String() = targetColumnText.Split({vbCrLf, vbLf}, StringSplitOptions.None)
    Dim isOverLength As Boolean = False
    ' 逐行判断字符长度
    For Each line As String In lineArr
        If line.Length > 38 Then
            isOverLength = True
            Exit For
        End If
    Next
    ' 根据判断结果设置背景色
    If isOverLength Then
        ListView1.Items(i).BackColor = Color.FromArgb(216, 141, 111)
    Else
        ' 未超长度时恢复默认背景色,不需要可以删除这行
        ListView1.Items(i).BackColor = SystemColors.Window
    End If
Next i

额外注意事项

  • 如果你的ListView启用了虚拟模式或者绑定了数据源,建议把这段逻辑放在DrawItem事件或者数据绑定完成的回调中执行,避免滚动时背景色丢失
  • 如果存在隐藏列导致第四列的索引不是3,把代码里的SubItems(3)改成对应实际索引即可

内容的提问来源于stack exchange,提问作者vahid Araghi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.14 07:06:04