是否可以在vb.net中的两个datagrid上循环

时间:2019-07-02 07:23:51

标签: vb.net loops datagridview

例如代码:

For Each r As DataGridViewRow In datagrid1 and datagrid2
next

我只需要一次循环访问两个数据网格视图即可在水晶报表上打印

2 个答案:

答案 0 :(得分:0)

重要的是要了解每个不同的循环是和不是。您会发现您的示例在这种情况下是荒谬的,但是有很多选择。

首先,循环是一种代码构造,使您可以多次执行一段代码。所有循环都是如此。区别在于循环如何决定何时停止循环。

For Each循环将为可枚举列表中的每个项目执行一次代码段,从而通过循环控制变量提供对当前项目的访问。例如,您可以循环访问Rows的{​​{1}}集合,每次访问当前行。

如果要处理两个网格,则需要首先弄清楚这意味着什么,这里没有做。是否打算一起处理成对的行,即在对应索引处从每个网格中处理一对行,还是单独处理每一行,而与源无关?如果是前者,则可以使用DataGridView翻录,然后通过循环计数器为两个For集合建立索引,例如

Rows

如果是后者,则需要从两个网格中创建一个单项列表。您可以在For i = 0 To grid1.Rows.Count - 1 Dim row1 = grid1.Rows(i) Dim row2 = grid2.Rows(i) '... Next 语句中执行此操作,但这与循环无关,例如

For Each

答案 1 :(得分:0)

我使用Sir.jmcilhinney提供的以下代码成功地一次循环了两个数据网格。

  For i = 0 To vmc.dgReservation.Rows.Count - 1
        Dim r = vmc.dgReservation.Rows(i)
        Dim r2 = vmc.dgBilling.Rows(i)
        Dim r3 = vmc.dgPayment.Rows(i)

        dt.Rows.Add(r.Cells("Check In").Value, _
          r.Cells("Check Out").Value, _
          r.Cells("Room No.").Value, _
          r.Cells("Nights").Value, _
          r.Cells("Rate").Value, _
          r2.Cells("Total Room Fee").Value, _
          r2.Cells("Other Charges Total").Value, _
          r3.Cells("Payment Method").Value, _
          r3.Cells("Total Amt. Due").Value)

    Next