3

データグリッドビューに3つの列を追加するリストビューでダブルクリックイベントを使用しています。「selectedText」変数に「Tag」プロパティを設定する方法がわかりません。

Private Sub lwArticles_DoubleClick(sender As Object, e As System.EventArgs) Handles lwArticles.DoubleClick
    Dim selectedText = lwArticles.SelectedItems(0).SubItems.Item(0).Text 'Article No
    Dim selectedDesc = lwArticles.SelectedItems(0).SubItems.Item(1).Text 'Description
    Dim currRowNo As String = ""
    Dim alreadyExists = False

    For i As Integer = 0 To dgvDetail.Rows.Count - 1
        currRowNo = dgvDetail.Rows(i).Cells(0).Value
        If currRowNo = selectedText Then
            alreadyExists = True
            dgvDetail.Rows(i).Cells(2).Value += 1
            Exit For
        End If
    Next

    'If the entry doesn't exist, add it
    If Not alreadyExists Then
        dgvDetail.Rows.Add(New String() {selectedText, selectedDesc, 1})
    End If

End Sub

この後、行のタグをループして記事番号を確認します。TagプロパティをselectedTextと等しくなるように設定する必要があるのはdgvDetail.Rows.Add()の近くになります...これを行う方法を知っている人はいますか?

編集:入力されているdatagridview列は、「記事番号」、「説明」、「数量」です。数量はループで設定されます。基本的に、同じものを2回ダブルクリックすると、3番目の列(Cell(2))が1つ増えます。

4

1 に答える 1

6

DataGridViewコントロールの「関数」を追加すると、グリッド内の行のインデックスが返されるため、これを使用して行を参照できます。

Dim rowIndex As Integer
rowIndex = dgvDetail.Rows.Add(New String() {selectedText, selectedDesc, 1})
dgvDetails.Rows(rowIndex).Tag = selectedText
于 2012-12-18T22:00:18.263 に答える