如何通过在数据网格视图中选择一行来自动填充文本框 (vb.net) (sql)

How can I autofill text boxes by selecting a row in a datagridview (vb.net) (sql)

我希望我的文本框在我 select 一行时自动填充。这是一个例子...

ID Firstname Lastname
2435 timmy turner

我点击 ID = 1 的行 ---> TextBox1.text = 2435

我试过了

For Each row As DataGridViewRow In DataGridView1.SelectedRows
        TextBox1.Text = row.Cells(0).value
    Next

我知道这是完全错误的,但我认为我的想法是正确的。

您必须处理 DataGridView 的 SelectionChanged 事件。

Private Sub MyDataGridView_SelectionChanged(sender As Object, e As EventArgs) Handles MyDataGridView.SelectionChanged

    With MyDataGridView

        ' Ensure one and only one row is selected.
        If .SelectedRows IsNot Nothing AndAlso .SelectedRows.Count = 1 Then

            Dim row As DataGridViewRow = .SelectedRows(0)

            TextBox1.Text = row.Cells(0).Value.ToString()
            TextBox2.Text = row.Cells(1).Value.ToString()

        End If

    End With
        
End Sub

如果您使用 BindingSource,您可以将相同的数据源应用于多个控件,它们将保持同步。

Binding的构造函数取

  • 你要绑定的属性,本例为Text
  • 数据源,在本例中为 BindingSource,bs
  • DataTable 中要绑定的列的字段名称,在本例中为 Name,另一个为 Type。 (我数据库中的字段 table)

当您在 DataGridView 中 select 行时,文本框将同步。

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim dt = LoadCoffeeTable()
    Dim bs As New BindingSource(dt, Nothing)
    DataGridView1.DataSource = bs
    TextBox1.DataBindings.Add(New Binding("Text", bs, "Name"))
    TextBox2.DataBindings.Add(New Binding("Text", bs, "Type"))
End Sub