我已经下载了一些相对于在我的网站上建立专栏的代码
DataGridView
允许我使用DateTimePicker
。
到目前为止一切顺利。如果我使用Dim col as new CalendarColumn
添加列,则网格效果很好。
但是......我需要分配一个现有的列......
来自数据库。如何让我datagridview1.columns("NoteDate")
CalendarColumn
?
我也尝试了以下代码
Dim col As New CalendarColumn()
col.DataPropertyName = "NoteDate"
col.HeaderText = "Headertext"
Dim loc As Integer =
dataGridView1.Columns.IndexOf(dataGridView1.Columns("NoteDate"))
dataGridView1.Columns.RemoveAt(loc)
dataGridView1.Columns.Insert(loc, col)
我认为它解决了我的问题,但只有当我重新刷新我的数据网格时才会工作一次,NoteDate会填充数据库中的值,但我不能让日历列再次运行
有什么建议吗?
答案 0 :(得分:0)
当您说"数据库中的现有列"时,我想您的意思是将AutoGenerateColumns
DataGridView
属性设置为True。在这种情况下,您可以使用ColumnAdded
事件并为列定义CellTemplate
。
上面的示例假设您的自定义DataGridViewTextBoxCell
类名为" CalendarCell"。
Private Sub dataGridView1_ColumnAdded(sender As Object, e As DataGridViewColumnEventArgs) Handles dataGridView1.ColumnAdded
If e.Column.DataPropertyName = "NoteDate" Then ' for your specific column
e.Column.CellTemplate = New CalendarCell()
End If
End Sub