Datagridviewの日付形式にしない


dainhill  2012-05-13 14:33:50  No: 147580  IP: 192.*.*.*

現在Datagridviewを勉強中なのですが、1-2-3という値をDatagridviewの中に入れると自動で日付に変わってしまいます。これがDatagridviewの仕様だと思うのですが、そのまま入れたい場合があると思うおもうのです。

仕方なく

DataGridView1.Columns(1).DefaultCellStyle.Format = CStr("y-M-d")

のようにしましたが、文字列化したものをもう一度文字列でキャストしてみましたが意味がないことに気づきました。

何か方法はないのでしょうか?

編集 削除
魔界の仮面弁士  2012-05-14 09:31:15  No: 147581  IP: 192.*.*.*

当方 VB2010 環境では再現しませんでした。

Public Class Form1
    Private WithEvents dgv As New DataGridView()
    Public Sub New()
        InitializeComponent()
        Controls.Add(dgv)
        dgv.EditMode = DataGridViewEditMode.EditOnEnter
        dgv.Dock = DockStyle.Fill
        dgv.ColumnCount = 5
        dgv.RowCount = 30
        dgv(1, 2).Value = "1-2-3"   '日付に変化したりはしない
    End Sub

    Private Sub Button1_Click(sender As System.Object, e As EventArgs) Handles Button1.Click
        Dim ds As New DataSet()
        Dim t As DataTable = ds.Tables.Add("T1")
        t.Columns.Add("C1", GetType(String))
        t.Columns.Add("C2", GetType(Date))
        t.Rows.Add("1-2-3", "1-2-3")
        t.AcceptChanges()

        'C2 列は日付になるが、C1 列は文字列のまま
        dgv.Columns.Clear()
        dgv.DataSource = t
    End Sub
End Class

編集 削除