Vb.net 从datagridview获取ID,并在文本框中向另一个窗体显示数据

Vb.net 从datagridview获取ID,并在文本框中向另一个窗体显示数据,vb.net,datagridview,Vb.net,Datagridview,我是vb.net中的新手。我有一个datagridview,显示交货编号、日期和供应商。现在,我希望管理员查看每一次发送到另一个表单的详细信息。我只想知道如何获得所选行的id,然后才能显示所选id的等效数据。谢谢 这是我的送货单代码 Private Sub dgvDeliveryReport_CellContentDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvDeliveryReport.Cell

我是vb.net中的新手。我有一个datagridview,显示交货编号、日期和供应商。现在,我希望管理员查看每一次发送到另一个表单的详细信息。我只想知道如何获得所选行的id,然后才能显示所选id的等效数据。谢谢

这是我的送货单代码

Private Sub dgvDeliveryReport_CellContentDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvDeliveryReport.CellContentDoubleClick
        If e.RowIndex < 0 Then Exit Sub

        Dim id As Int32 = dgvDeliveryReport.CurrentRow.Cells(0).Value
        Dim viewDelivery As New frmDeliveryFormReport
        frmDeliveryFormReport.Show()
    End Sub
私有子dgvDeliveryReport_CellContentDoubleClick(发送方作为对象,e作为DataGridViewCellEventArgs)处理dgvDeliveryReport.CellContentDoubleClick
如果e.RowIndex<0,则退出Sub
Dim id为Int32=dgvDeliveryReport.CurrentRow.Cells(0).Value
Dim viewDelivery作为新的FRMDelivery提交给MRReport
frmdeliveryformrreport.Show()文件
端接头
试试看

Dim newFrmName作为新表单
对于SampleGrid中作为DataGridViewRow的每一行
如果row.selected=true,则
Dim whatValueYouWant as string=row.cells(“ID”).value.toString()
如果newFrmName.NameOfTextBoxInForm.Text vbEmpty,则
'NameOfTextBoxInForm是表单中存在的文本框
newFrmName.NameOfTextBoxInForm.text=“,”&需要什么值
其他的
newFrmName.NameOfTextBoxInForm.text=所需的值
如果结束
如果结束
下一个
newFrmName.Show()
  • frmDeliveryFormReport
    类中,添加一个新字段以存储当前行:

    private\u currentDeliveryReportRow作为DataGridViewRow

  • 查找构造函数:

    Public Sub New frmDeliveryFormReport()
      ...
    End Sub
    
    Private Sub dgvDeliveryReport_CellContentDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvDeliveryReport.CellContentDoubleClick
        If e.RowIndex < 0 Then Exit Sub
    
        Dim viewDelivery As New frmDeliveryFormReport(dgvDeliveryReport.CurrentRow)
        frmDeliveryFormReport.Show()
    End Sub
    
    (如果找不到,请继续下一步)

  • 更改/添加构造函数,使其接受
    DataGridViewRow
    参数并存储给定行:

    Public Sub New frmDeliveryFormReport(deliveryReportRow as DataGridViewRow)
       _currentDeliveryReportRow = deliveryReportRow 
    End Sub
    
  • 调整现有的
    dgvDeliveryReport_CellContentDoubleClick
    调用新构造函数:

    Public Sub New frmDeliveryFormReport()
      ...
    End Sub
    
    Private Sub dgvDeliveryReport_CellContentDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvDeliveryReport.CellContentDoubleClick
        If e.RowIndex < 0 Then Exit Sub
    
        Dim viewDelivery As New frmDeliveryFormReport(dgvDeliveryReport.CurrentRow)
        frmDeliveryFormReport.Show()
    End Sub
    
    私有子dgvDeliveryReport_CellContentDoubleClick(发送方作为对象,e作为DataGridViewCellEventArgs)处理dgvDeliveryReport.CellContentDoubleClick
    如果e.RowIndex<0,则退出Sub
    Dim viewDelivery作为新的frmDeliveryFormReport(dgvDeliveryReport.CurrentRow)交付
    frmdeliveryformrreport.Show()文件
    端接头
    
然后,您可以通过访问frmDeliveryFormReport中DeliveryReportRow的所有列

_currentDeliveryReportRow.Cells(<CellIndex>)
\u currentDeliveryReportRow.Cells()

有关此主题的其他信息:


不只是将id传递给另一个表单,您可以将整行传递给它。然后,您可以显示所有需要的数据。只需将类型为
DataGridViewRow
的参数添加到
frmDeliveryFormReport
构造函数中,并将
DGVDDeliveryReport.CurrentRow
传递给它。您有什么东西可以告诉我它是如何工作的吗?喜欢论坛、教程或代码吗?就像我说的,我是vb.net的新手。所以我无法想象我会怎么做。谢谢。我补充了一个答案。请看它是否对你有帮助。杰森先生,上面的样本网格是什么?