【发布时间】:2019-05-28 06:23:23
【问题描述】:
如何将 DataGridView 的索引设置为 0?
我开发了一个药房软件,我想通过添加新行将 TextBoxes 中的值添加到 DataGridView 中。它正在工作,但问题是当我使用此代码清除 DataGridView 的值时
dgvSoldMedicineInfo.Rows.Clear()
然后当我尝试前面的过程时,它在 VB.NET 中显示此错误
索引超出范围,必须为非负数且小于集合的大小。参数名称:索引
代码:
Dim rowcounter As Integer = 0
Private Sub btnCalculate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalculate.Click
dgvSoldMedicineInfo.Rows.Add()
dgvSoldMedicineInfo.Rows(rowcounter).Cells("ColumnBarcodeNo").Value = txtBarcodeNo.Text
dgvSoldMedicineInfo.Rows(rowcounter).Cells("ColumnName").Value = dgvSale.CurrentRow.Cells(2).Value
dgvSoldMedicineInfo.Rows(rowcounter).Cells("ColumnQuantity").Value = txtQuantity.Text
dgvSoldMedicineInfo.Rows(rowcounter).Cells("ColumnSalePrice").Value = txtSalePrice.Text
dgvSoldMedicineInfo.Rows(rowcounter).Cells("ColumnAmount").Value = txtTotalAmount.Text
dgvSoldMedicineInfo.Rows(rowcounter).Cells("ColumnReject").Value = "Reject"
dgvSoldMedicineInfo.Rows(rowcounter).Cells("ColumnStockID").Value = dgvSale.CurrentRow.Cells(0).Value
dgvSoldMedicineInfo.Rows(rowcounter).Cells("ColumnStockQuantity").Value = dgvSale.CurrentRow.Cells(3).Value
System.Math.Max(System.Threading.Interlocked.Increment(rowcounter), rowcounter - 1)
End Sub
【问题讨论】:
-
您可以像这样添加 Row dgvSoldMedicineInfo.Rows.Add(txtBarcodeNo.Text,dgvSale.CurrentRow.Cells(2).Value,txtQuantity.Text...等等) 无需添加行然后单独填充单元格,仅当您需要编辑该单个单元格时才执行 dgvSoldMedicineInfo(y,x).value=something 。为什么需要行计数器变量?您可以直接使用 dgvSoldMedicineInfo.Rows.Count 获取行数
标签: vb.net