简体   繁体   中英

get ID from datagridview and show the data to another form in textboxes

Im kind of new in vb.net. I have a datagridview that shows the Delivery Number, Date and supplier. Now, I want the Admin to view the details of every delivery to another form. I just want to know how will I get the id of the selected row and then will be able to display the equivalent data of that selected ID. Thanks.

Here's my code for the Deliveries Form.

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

Try.

Dim newFrmName as new yourForm

For each row as DataGridViewRow in SampleGrid
    if row.selected = true then
        Dim whatValueYouWant as string = row.cells("ID").value.toString()
        if newFrmName.NameOfTextBoxInForm.Text <> vbEmpty Then
            'NameOfTextBoxInForm is textbox that existing in yourform
            newFrmName.NameOfTextBoxInForm.text = ", " & whatValueYouWant
        Else
            newFrmName.NameOfTextBoxInForm.text = whatValueYouWant
        End If
    End IF
Next

newFrmName.Show()
  • In your frmDeliveryFormReport class add a new field to store current row:

    private _currentDeliveryReportRow as DataGridViewRow

  • Look for the constructor:

     Public Sub New frmDeliveryFormReport() ... End Sub 

    (If you cannot find it just proceed with the next step).

  • Change/Add the constructor so it takes the DataGridViewRow parameter and store the given row:

     Public Sub New frmDeliveryFormReport(deliveryReportRow as DataGridViewRow) _currentDeliveryReportRow = deliveryReportRow End Sub 
  • Adapt your existing dgvDeliveryReport_CellContentDoubleClick to call the new constructor:

     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 

You can then access all columns of the DeliveryReportRow in the frmDeliveryFormReport via

_currentDeliveryReportRow.Cells(<CellIndex>)

Additional information about this topic:

Passing variables between windows forms in VS 2010

VB.Net Passing values to another form

http://www.dreamincode.net/forums/topic/332553-passing-data-between-forms/

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM