2017-10-20 20 views
0

単純なDataGridViewがあり、ボタンをクリックしたときにセルの値を取得しようとしています。それが変数に設定されている場合、それは間違っていますが、私はそれを見てすぐに正しいです。私はこれを引き起こしているのを見ない?セルの不正な値を返すDatagridviewrow

Private Sub btnUpdAll_Click(sender As Object, e As EventArgs) Handles btnUpdAll.Click 
     For Each r As DataGridViewRow In gvResults.Rows 
      Dim x = r.Cells(1).Value 
     Next 
    End Sub 

Correct value in the cell Variable gets this value

+2

すべての行をループしているので、 'x'の値は各繰り返しで変更されます。 – jmcilhinney

+3

また、 'x'の値はあなたがその割り当てを越えるまで設定されません。それが現在の行であれば、' x'は前の行の値を含むと期待します。現在の行から値を返します。 – jmcilhinney

答えて

0

@jmcilhinneyは私が間違ってループ内で変数を宣言し、それを毎回リセットした言ったように。 @shimrod、私は各行を取得し、以下のような各行で単一のセルを更新したいと考えました。

Private Sub btnUpdAll_Click(sender As Object, e As EventArgs) Handles btnUpdAll.Click 
     Dim x 
     For Each r As DataGridViewRow In gvResults.Rows 
      x = r.Cells(1).Value 
      updateRecord(x)    
     Next 
    End Sub 
0

なぜループあなたは一つのセルの値、あなたがいずれかを選択したい場合。

私が使用します。

Private Sub btnUpdAll_Click(sender As Object, e As EventArgs) Handles btnUpdAll.Click 

    Dim row As DataGridViewRow = gvResults.CurrentRow 

    Dim x as String= row.Cells(e.ColumnIndex).Value.toString() 

End Sub 

または

Private Sub btnUpdAll_Click(sender As Object, e As EventArgs) Handles btnUpdAll.Click 

    Dim x As String = gvResults.Rows(e.RowIndex).Cells(e.ColumnIndex).Value.ToString() 

End Sub 
関連する問題