找出DataGridView的当前行的特定列的值

时间:2012-05-17 23:01:15

标签: vb.net datagridview row

我们有一个包含3列的DataGridView: InvoicedOn,PaidOn和Amount

在MouseDown事件中,这行代码需要修复:

MsgBox(DataGridViewPayments.Item("Amount", DataGridViewPayments.CurrentRow.Index), "")

我们正试图找出当前行数量列中的值。

我们也收到此错误消息:

Conversion from string "" to type 'Integer' is not valid.

你能告诉我如何修复MsgBox以便它显示值吗?

2 个答案:

答案 0 :(得分:1)

使用列索引而不是列名

MsgBox(DataGridViewPayments.Item(2, DataGridViewPayments.CurrentRow.Index)).value, "")

答案 1 :(得分:1)

语法DataGridViewPayments.Item("Amount", DataGridViewPayments.CurrentRow.Index)将在名为“Amount”的列(假设它存在)与当前行索引(假设CurrentRow不是Nothing)的交叉处获得 DataGridViewCell

要获取该单元格的值,您需要引用名为Value

的DataGridViewCell的属性
DataGridViewPayments.Item("Amount", DataGridViewPayments.CurrentRow.Index).Value

Amount列表示存在数值,但请记住,如果当前单元格为空或为null,则可能会出现异常。在这种情况下,最好这样做:

object o = DataGridViewPayments.Item("Amount", DataGridViewPayments.CurrentRow.Index).Value
if o Is Nothing OrElse o.ToString = "" then 
  MsgBox("The cell is empty or null", "Message Title")
else
  MsgBox("The cell value is " + o.ToString, "Message Title")
end if