Vb.net 自动移动DataGridView中的下一列

Vb.net 自动移动DataGridView中的下一列,vb.net,datagridview,Vb.net,Datagridview,我有下面的代码,若条件满足,我需要执行到下一列。 请帮忙 Dim i As Integer i = DataGridView1.CurrentRow.Index If i >= 0 Then Service_Reservation.TxtBoxResID.Text = DataGridView1.Item(0, i).Value Service_Reservation.txtBoxSerID.Text = DataGridView1.Ite

我有下面的代码,若条件满足,我需要执行到下一列。 请帮忙

 Dim i As Integer
    i = DataGridView1.CurrentRow.Index
    If i >= 0 Then
        Service_Reservation.TxtBoxResID.Text = DataGridView1.Item(0, i).Value
        Service_Reservation.txtBoxSerID.Text = DataGridView1.Item(1, i).Value
        Service_Reservation.DatePickerDateIn.Text = DataGridView1.Item(2, i).Value
        If DataGridView1.Item(3, i).Value Is Nothing Then
            ****
        Else
            Service_Reservation.DateTimePickerDateOut.Text = DataGridView1.Item(3, i).Value
        End If
        Service_Reservation.DateTimePickerTimeIn.Text = DataGridView1.Item(4, i).Value
        Service_Reservation.DateTimePickerTimeOut.Text = DataGridView1.Item(5, i).Value
        Service_Reservation.txtBoxQty.Text = DataGridView1.Item(6, i).Value

我认为您可能正在寻找一种简化语法的方法,用于测试一个并非一无是处的对象。Net不是在某种程度上避免了笨拙的编码:

    If DataGridView1.Item(3, i).Value IsNot Nothing Then
        Service_Reservation.DateTimePickerDateOut.Text = DataGridView1.Item(3, i).Value
    End If
    'clumsy way but valid
    If Not DataGridView1.Item(3, i).Value Is Nothing Then
        Service_Reservation.DateTimePickerDateOut.Text = DataGridView1.Item(3, i).Value
    End If

一个空的IF或ELSE部分是OK的-有时会使代码更可读

    If DataGridView1.Item(3, i).Value Is Nothing Then
        ' *** probably bad data - see Fred
    Else
        Service_Reservation.DateTimePickerDateOut.Text = DataGridView1.Item(3, i).Value
    End If
注意:您可以使用列名对单元格进行寻址(除非您使用IDE创建数据对象)


如果您对行依赖变量(
i
),为什么不对列执行相同的操作,而不是对值进行硬编码(例如,
i2
,其值可能在条件内更改)?无论如何,这个问题太基本了,不能在这里讨论。
    If DataGridView1.Item("Reservation_Date", i).Value Is Nothing Then
        ****
    Else
        Service_Reservation.DateTimePickerDateOut.Text = DataGridView1.Item(3, i).Value
    End If