[英]Adding records (Row/ Column) to DataGridView; Collection already belongs to a DataGridView control VB.NET
[英]How to check datagridview column already exists with same Header Text Before adding a new Column in VB.net
我正在嘗試使用 VB.net 將列動態添加到數據網格視圖。 但問題是我需要檢查列名是否已經存在。 在添加它(如果存在)之前,我希望它自動取消。 我正在使用另一種表格 select 作業號,它將在保存時添加為 Datagridview Header 文本。 () 下面是我用來向我的 datagridview 添加列的代碼。 希望你明白這個問題。 我在 C# 中找到了一些附近的答案,不幸的是我無法正確轉換這些答案,因為我的 C# 編碼知識有點薄弱。
謝謝你!
Dim FRMP = FrmEReview.ReviewGrid.Columns
Dim NOHRS As New DataGridViewTextBoxColumn
FRMP.Add(NOHRS)
NOHRS.HeaderText = Me.Cmb_CName.Text & "-" & Me.Cmb_DName.Text
NOHRS.Width = 160
顯而易見的選擇 - 您應該能夠自己解決的選項 - 是簡單地遍歷列並測試每個列的HeaderText
:
Dim headerText = $"{Cmb_CName.Text}-{Cmb_DName.Text}"
Dim headerTextFound = False
For Each column As DataGridViewColumn In FrmEReview.ReviewGrid.Columns
If column.HeaderText = headerText Then
headerTextFould = True
Exit For
End If
Next
If Not headerTextFound Then
'...
End If
這基本上相當於您手動執行的代碼,這就是為什么您應該能夠自己完成它,至少在大多數情況下。
對於初學者來說不太明顯的解決方案是使用 LINQ。 LINQ 基本上是一種像這樣扁平化循環的方法,因此它會導致更簡潔的代碼:
Dim headerText = $"{Cmb_CName.Text}-{Cmb_DName.Text}"
If FrmEReview.ReviewGrid.
Columns.
Cast(Of DataGridViewColumn)().
All(Function(dgvc) dgvc.HeaderText <> headerText) Then
'...
End If
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.