0

InvoicedOn、PaidOn、Amountの3つの列を持つDataGridViewがあります

MouseDownイベントには、修正が必要な次のコード行があります。

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

現在の行の[金額]列の値を調べようとしています。

次のエラーメッセージも表示されます。

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

値が表示されるようにMsgBoxを修正する方法を教えてください。

4

2 に答える 2

1

列名の代わりに列インデックスを使用する

MsgBox(DataGridViewPayments.Item(2, DataGridViewPayments.CurrentRow.Index)).value, "")
于 2012-05-17T23:37:25.877 に答える
1

構文は、 「Amount」という名前の列(存在する場合)と現在の行インデックス(CurrentRowがNothingでない場合)の交点でDataGridViewCellDataGridViewPayments.Item("Amount", DataGridViewPayments.CurrentRow.Index)を取得します。

そのセルの値を取得するには、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
于 2012-05-17T23:40:50.913 に答える