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

VB.NET中添加新列前如何检查DataGridView是否存在相同HeaderText的列

VB.NET DataGridView 动态添加列前检查重复HeaderText

先构造要使用的列头文本,再检查目标DataGridView的列集合中是否已存在相同HeaderText的列,只有不存在时才创建并添加列。修改后的代码如下:

方法1:使用LINQ(需导入 System.Linq)

' 构造要设置的HeaderText
Dim targetHeaderText As String = Me.Cmb_CName.Text & "-" & Me.Cmb_DName.Text
' 获取目标DataGridView的列集合
Dim gridColumns As DataGridViewColumnCollection = FrmEReview.ReviewGrid.Columns

' 检查是否存在相同HeaderText的列
If Not gridColumns.Cast(Of DataGridViewColumn)().Any(Function(col) col.HeaderText = targetHeaderText) Then
    ' 创建新列并设置属性
    Dim noHrsColumn As New DataGridViewTextBoxColumn()
    noHrsColumn.HeaderText = targetHeaderText
    noHrsColumn.Width = 160
    ' 添加列到DataGridView
    gridColumns.Add(noHrsColumn)
End If

方法2:使用循环遍历(无需LINQ)

Dim targetHeaderText As String = Me.Cmb_CName.Text & "-" & Me.Cmb_DName.Text
Dim gridColumns As DataGridViewColumnCollection = FrmEReview.ReviewGrid.Columns
Dim columnExists As Boolean = False

' 遍历列集合检查重复
For Each col As DataGridViewColumn In gridColumns
    If col.HeaderText = targetHeaderText Then
        columnExists = True
        Exit For
    End If
Next

' 不存在重复列时添加
If Not columnExists Then
    Dim noHrsColumn As New DataGridViewTextBoxColumn()
    noHrsColumn.HeaderText = targetHeaderText
    noHrsColumn.Width = 160
    gridColumns.Add(noHrsColumn)
End If

关键说明

  • 先构造targetHeaderText再检查,避免先添加列后设置文本导致的无效操作
  • 若需要忽略大小写匹配,可将判断条件改为String.Equals(col.HeaderText, targetHeaderText, StringComparison.OrdinalIgnoreCase)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 07:18:19