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
相关产品推荐
相关产品推荐

