6

For ... Nextループを使用してDataGridViewで複数の選択をチェックしようとしていますが、複数の行を選択した場合でも、Selected=Trueプロパティを持つ唯一の行が選択の最初の行です。これを回避する方法はありますか?

MultiSelectは、DataGridViewでtrueです。

私のコードは次のとおりです。

For Each dr As DataGridViewRow In dgv.Rows
    If dr.Selected = True Then
        intSelectedRow = dr.Index
        SetTime("KeyEntry", dgv.Name, intSelectedRow)
    End If
Next

ありがとう

4

2 に答える 2

7

これを試して:

Dim selectedItems As DataGridViewSelectedRowCollection = dgv.SelectedRows
      For Each selectedItem As DataGridViewRow In selectedItems
            'Add code to handle whatever you want for each row
      Next
End Sub
于 2013-01-28T14:10:47.047 に答える
-1
    Dim Message As String = String.Empty
    Dim FNL As FinalRpt = New FinalRpt()

    For Each ItemRow As DataGridViewRow In DGVItems.Rows

        Dim ISSelected As Boolean = Convert.ToBoolean(ItemRow.Cells("MyChkBox").Value)

        If ISSelected Then

            Message &= Environment.NewLine

            Message &= ItemRow.Cells("I_ID").Value.ToString()

            Dim SelectedRow As Integer = DGVItems.Rows.GetRowCount(DataGridViewElementStates.Selected)

            Dim RPTItemsDA As OleDbDataAdapter
            Dim RPTItemsDS As DataSet

            Dim I As Integer

            For I = 0 To SelectedRow Step 1

                RPTItemsDA = New OleDbDataAdapter("Select Distinct * From stkrpt Where I_ID = " & DGVItems.SelectedRows(I).Index.ToString() & "", DBConnect)
                RPTItemsDS = New DataSet

                RPTItemsDA.Fill(RPTItemsDS, "stkrpt")

                FNL.DGVReport.DataSource = RPTItemsDS
                FNL.DGVReport.DataMember = "stkrpt"
            Next

            FNL.MdiParent = MDIParent1

            FNL.StartPosition = FormStartPosition.CenterScreen
            FNL.WindowState = FormWindowState.Maximized


            Me.Hide()
            FNL.Show()

            ISSelected = False

        End If
    Next

    MessageBox.Show(Message)
于 2017-10-06T08:06:18.937 に答える