none
DataGridViewの値の登録 RRS feed

  • 質問

  • こんにちは。

    VB2010Express+SQLServer2008Expressを使用しております。

    DBから取得したデータをバインドしたDataGridViewがあります。

    A列:日付(Date型)
    B列:時刻(DateTime型)

    があります。

    B列に時刻を入力したのちに、B列のデータを
    A列の日付 + B列で入力した時刻としたいと考えています。
    (A列:5/4  B列:13:30  結果 2012/5/4 13:30)

    DataGridView1_CellValidatingイベントのFormattedValueで
    入力中のデータを取得することができることまではわかりました。

    そのまま、このイベント内で
    FormattedValue=DateTime.Parse(A列のデータ + " " + FormattedValue)
    でできるかと思ったのですが、FormattedValueはReadOnlyのためできませんでした。

    そこで、やはり同じイベント内で下記のように記述をしてみましたが、
    得られる結果は、
    2012/5/10 13:30   でした。

    Dim dgv As DataGridView = DirectCast(sender, DataGridView)

    dgv(e.ColumnIndex, e.RowIndex).Value = _
                        DateTime.Parse(CStr(dgv(2, e.RowIndex).Value + " " + e.FormattedValue.ToString))
                       
    DataGridView1_CellValidatedイベントや
    DataGridView1_CellLeaveイベントも試してみたのですが、結果は変わりませんでした。
    結果:2012/5/10 13:30
    (13:30を入力し、入力を確定した結果となっているようです。)

    一体、どのイベントを利用すればよいのでしょうか。

    アドバイスをお願いします。


    • 編集済み TI-cb400 2012年5月10日 7:13
    2012年5月10日 5:34

回答