Select DataGridView 第一行并在文本框中显示单元格内容

Select first row of DataGridView and display cell contents in text boxes

我正在开发一个小型 VB 应用程序,它从 SQL table 检索客户数据(ID、姓名、姓氏、购买详细信息)并将其显示在 DataGridView 上.

同一个表单上有 4 个文本字段,我的目标是每次单击 DataGridView 行时,其单元格的内容将显示在这些字段上。

到目前为止一切正常,除了这一点:表单完成加载并显示 DataGridView 后,网格的第一行被选中(突出显示)但其数据未显示在文本字段中。

如果我在该行上单击一次,就会显示数据。

所以我的问题是我无法以编程方式使第一行的数据在表单加载完成后自动显示在文本字段上。

我试过了

Form1.DataGrid1.Rows(0).Selected = true

还有

Form1.DataGrid1.Rows.GetFirstRow(DataGridViewElementStates.Visible)

但这两个代码都不起作用。第一行突出显示,但除非我单击该行,否则数据不会显示在文本字段中。

我正在考虑以编程方式模拟鼠标点击第一行,但我不知道这是否是一个可行的解决方案。

非常感谢您提供的任何帮助。非常感谢!

兰迪

selecting 该行只是突出显示它的原因是 selection 正是这样。您可以 select 同时显示多行数据,但显然您不能同时在其他控件中显示多行数据。

您究竟是如何将数据加载到网格中的?如果您通过 BindingSource 绑定它,那么您实际上应该做的是设置 BindingSourceCurrentPosition。如果其他控件也被绑定,那么就会达到预期的效果。

否则,您需要做的是设置CurrentRow 属性,您只能将该行中的一个单元格分配给CurrentCell 属性 ].

试试这个..

 private void DataGridView1_SelectionChanged(object sender, EventArgs e)
    {
      if( DataGridView1.SelectedRows.Count = 0 )
      {
        TextBox1.Value = DataGridView1.SelectedRows(0).Cells(0).Value;
        TextBox2.Value = DataGridView1.SelectedRows(0).Cells(1).Value;
        TextBox3.Value = DataGridView1.SelectedRows(0).Cells(2).Value;
        TextBox4.Value = DataGridView1.SelectedRows(0).Cells(3).Value;
      }
    }

也看到这个link