2012-05-17 2 views
0

У нас есть DataGridView с 3-мя столбцами: InvoicedOn, PaidOn и суммаВыяснить значение определенного столбца текущей строки в DataGridView

На мероприятии MouseDown эта строка кода, которая должна быть исправлена :

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

Мы пытаемся выяснить, какое значение в столбце Сумма текущей строки.

Мы также получить это сообщение об ошибке:

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

Можете ли вы сказать мне, как исправить MsgBox так он будет показывать значение?

ответ

1

Синтаксис DataGridViewPayments.Item("Amount", DataGridViewPayments.CurrentRow.Index) получит DataGridViewCell на пересечении столбца с именем «Сумма» (предположим, что существует) с индексом текущей строки (предполагая, что CurrentRow является не ничего).

Чтобы получить значение этой ячейки вы должны ссылаться на свойство 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 
+0

Благодарим за полезный код и быстрый ответ. Я буду использовать это. –

1

Используйте индекс столбца вместо имени столбца

MsgBox(DataGridViewPayments.Item(2, DataGridViewPayments.CurrentRow.Index)).value, "") 
Смежные вопросы