現在Datagridviewを勉強中なのですが、1-2-3という値をDatagridviewの中に入れると自動で日付に変わってしまいます。これがDatagridviewの仕様だと思うのですが、そのまま入れたい場合があると思うおもうのです。
仕方なく
DataGridView1.Columns(1).DefaultCellStyle.Format = CStr("y-M-d")
のようにしましたが、文字列化したものをもう一度文字列でキャストしてみましたが意味がないことに気づきました。
何か方法はないのでしょうか?
当方 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
ツイート | ![]() |