我们有一个包含3列的DataGridView: InvoicedOn,PaidOn和Amount
在MouseDown事件中,这行代码需要修复:
MsgBox(DataGridViewPayments.Item("Amount", DataGridViewPayments.CurrentRow.Index), "")
我们正试图找出当前行数量列中的值。
我们也收到此错误消息:
Conversion from string "" to type 'Integer' is not valid.
你能告诉我如何修复MsgBox以便它显示值吗?
答案 0 :(得分:1)
使用列索引而不是列名
MsgBox(DataGridViewPayments.Item(2, DataGridViewPayments.CurrentRow.Index)).value, "")
答案 1 :(得分:1)
语法DataGridViewPayments.Item("Amount", DataGridViewPayments.CurrentRow.Index)
将在名为“Amount”的列(假设它存在)与当前行索引(假设CurrentRow不是Nothing)的交叉处获得 DataGridViewCell 。
要获取该单元格的值,您需要引用名为Value
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