[英]How to get all the rows of datagridview and put them into textboxes
是否可以獲取 datagridview 的所有行並將它們放入文本框? (只有 6 行)。
我希望這些行在加載到 datagridview 時同時放入 texboxes 中,而沒有任何選擇當前行索引或選擇多行索引。
需要幫忙!
以下 DataGridView 在 IDE 中定義了六列。 共有三個 TextBox,分別名為 TextBox1、TextBox2、TextBox3。 TextBoxes 的關鍵是要有一個序號,以便我們可以將 DataGridView 中的行與 TextBoxes 匹配。 另一個想法是動態創建文本框,但這會帶來房地產,因此在這種情況下也需要考慮。
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
DataGridView1.Rows.Add(New Object() {"A1", "B1", "C1", "D1", "E1", "F1"})
DataGridView1.Rows.Add(New Object() {"A2", "B2", "C2", "D2", "E2", "F2"})
DataGridView1.Rows.Add(New Object() {"A3", "B3", "C3", "D3", "E3", "F3"})
Dim Data As String() = DataGridViewRowsToStringArray(DataGridView1)
If Data.Count <= DataGridView1.Rows.Count Then
Dim items As Control() = Nothing
For row As Integer = 0 To Data.Count - 1
' Find a TextBox as each textbox is named
' TextBoxn where n is a number e.g. TextBox1, TextBox2 etc.
items = Me.Controls.Find("TextBox" & row + 1, False)
If items IsNot Nothing Then
CType(items.FirstOrDefault, TextBox).Text = Data(row)
End If
Next
End If
End Sub
Public Function DataGridViewRowsToStringArray(ByVal sender As DataGridView) As String()
Dim RowData =
(
From row In sender.Rows
Where Not DirectCast(row, DataGridViewRow).IsNewRow
Let RowItem = String.Join(",",
Array.ConvertAll(
(
From X In DirectCast(row, DataGridViewRow).Cells.Cast(Of DataGridViewCell).ToArray
).ToArray,
Function(c As DataGridViewCell) _
If(c.Value Is Nothing, "", c.Value.ToString)))
Select RowItem).ToArray
Return RowData
End Function
End Class
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.