簡體   English   中英

在 VB.net 中添加新列之前,如何使用相同的 Header 文本檢查 datagridview 列是否已存在

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM