选中另一个复选框时,自动选择datagridview中的复选框

时间:2013-04-23 15:56:39

标签: sql-server vb.net datagridview

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

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

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

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

 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的额外列,但由于它们不存在于数据表中,我无法在偶数处理程序中执行此操作。

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

1 个答案:

答案 0 :(得分: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

让我知道它是否有效。