我试图获取DataGridView rowIndex并将其设置为文本框,所有这些代码都很好
Private Sub dgv_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgv.CellContentClick
isitxt(e.RowIndex)
btnInsert.Enabled = False
btnUpdate.Enabled = True
btnDelete.Enabled = True
End Sub
和
Sub isitxt(ByVal x As Integer)
txtIDBarang.Text = dgv.Rows(x).Cells(0).Value
txtNamaBarang.Text = dgv.Rows(x).Cells(1).Value
cbJenisBarang.Text = dgv.Rows(x).Cells(2).Value
numHargaBeli.Value = dgv.Rows(x).Cells(3).Value
numHargaJual.Value = dgv.Rows(x).Cells(4).Value
End Sub
但是当我点击列标题时,我得到了IndexOutOfRangeException
。我怎么处理它?
答案 0 :(得分:1)
请注意,如果您使用CellContentClick,则仅当用户实际针对单元格的文本内容时才会执行代码。通常,CellClick更有意义。
至于你的代码,当你收到错误时,你可以调试并查看" x"中的内容 - 我想" -1" ...你然后可以处理它。但是,原因不应该在上面的代码中。
您也可以设置SelectionMode = FullRowSelect
并按照以下方式执行操作:
Private Sub dgv_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgv.CellClick
isitxt(Me.dgv.selectedRows(0).index)
btnInsert.Enabled = False
btnUpdate.Enabled = True
btnDelete.Enabled = True
End Sub
除非您想单独处理单元格,否则用户通常更喜欢FullRowSelect模式。