1

一点帮助将不胜感激,我正在设计一个自行车租赁/预订程序,作为使用 MS Sql DB 的 VB 中当前项目的扩展。

我有一个数据网格视图,它显示了从我的数据库中提取的几行数据,我手动添加了另外两列,以便有几个复选框列。

这个想法是,如果有人使用第一个复选框列选择自行车,那么第二个复选框列(用于选择头盔)将自动被选中。如果该人不想要头盔,则用户可以取消选择该选项。这样一来,除非他们决定不戴头盔,否则用户将自动获得头盔,而不必选择戴头盔。

如何使第一个复选框的选择启用第二个复选框?当用户单击单元格时,我有一个事件处理程序:

 Private Sub dgvBikeAvailability_CellContentClick(sender As System.Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvBikeAvailability.CellContentClick
    drBikeAvailability = dvBikeAvailability(e.RowIndex).Row 

    'MsgBox to test data pass through
    MsgBox(drBikeAvailability("bikeName")) 

End Sub

我一直在尝试访问已添加到 datagridview 的额外列,但由于它们不存在于数据表中,因此我无法在偶数处理程序中这样做。

非常感谢任何想法和建议!

4

1 回答 1

2

假设第一个复选框位于列索引 0 处,第二个位于索引 2 处(我认为您可以将索引替换为列名)。您需要自己处理复选框的值,因为该事件似乎禁用了正常的点击行为。

Private Sub dgvBikeAvailability_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvBikeAvailability.CellContentClick
    If e.ColumnIndex = 0 Then
        dgvBikeAvailability.Rows(e.RowIndex).Cells(0).Value = Not dgvBikeAvailability.Rows(e.RowIndex).Cells(0).Value
        dgvBikeAvailability.Rows(e.RowIndex).Cells(2).Value = dgvBikeAvailability.Rows(e.RowIndex).Cells(0).Value
    End If
End Sub

让我知道它是否有效。

于 2013-04-23T16:29:52.463 回答