我将非常感谢一点帮助,我正在设计一个自行车租赁/预订程序,作为使用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的额外列,但由于它们不存在于数据表中,我无法在偶数处理程序中执行此操作。
非常感谢任何想法和建议!
答案 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
让我知道它是否有效。