2016-04-07 12 views
0

vb.netの新機能です。私は配信番号、日付、サプライヤを示すdatagridviewを持っています。今、管理者は、すべての配信の詳細を別のフォームに表示する必要があります。選択した行のIDをどのように取得したら、その選択したIDの同等のデータを表示できるかを知りたいだけです。ありがとう。DataGridviewから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 
+0

idを他のフォームに渡すのではなく、行全体を渡すことができます。次に、必要なすべてのデータを表示することができます。 'DataGridViewRow'型のパラメータを' frmDeliveryFormReport'コンストラクタに追加し、 'dgvDeliveryReport.CurrentRow'を渡してください。 –

+0

あなたは私に何かを見せてもらえますか?それを行うためのフォーラム、チュートリアル、またはコードと同じように?私はImをvb.netに新しいと言ったように。だから、私はそれをどのようにして行うのかを視覚化することはできません。ありがとう。 – noob

+0

私は答えを加えました。それがあなたに役立つかどうか見てください。 –

答えて

0
  • 現在の行を格納するための新しいフィールドを追加します。コンストラクタの

    private _currentDeliveryReportRow as DataGridViewRow

  • ルック:

    Public Sub New frmDeliveryFormReport() 
        ... 
    End Sub 
    

    (あなたは見つけることができない場合それはちょうど次のステップに進みます)。それはDataGridViewRowパラメータを取るよう

  • 変更/コンストラクタを追加し、指定された行格納します

    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を適応

Public Sub New frmDeliveryFormReport(deliveryReportRow as DataGridViewRow) 
    _currentDeliveryReportRow = deliveryReportRow 
End Sub 
  • をfrmDeliveryFormReportのDeliveryReportRowのすべての列には

    でアクセスできます
    _currentDeliveryReportRow.Cells(<CellIndex>) 
    

    このトピックに関する追加情報:

    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/

  • +0

    yeyです!それは今働く。おかげでアレックスB. :) – noob

    0

    を試してください。あなたのfrmDeliveryFormReportクラスで

    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() 
    
    +0

    Sir Jsun、上記のSampleGridは何ですか? – noob

    +0

    それはDataGridView – JSun

    関連する問題