Я использовал этот пример для создания столбца DateTime для DataGridView в моем приложении winforms.
http://msdn.microsoft.com/en-us/library/7tas5c80.aspx
Я вижу новый столбец в конструкторе Windows Forms и добавляю его в существующий DataGridView.
Однако я хочу иметь возможность изменять формат отображения при изменении «DefaultCellStyle» в конструкторе.
Сгенерированный дизайнером код выглядит так:
DataGridViewCellStyle1.Format = "t"
DataGridViewCellStyle1.NullValue = Nothing
Me.colDate.DefaultCellStyle = DataGridViewCellStyle1
Me.colDatum.Name = "colDate"
Me.colDatum.Resizable = System.Windows.Forms.DataGridViewTriState.[False]
Что хорошо. Но так как код DataGridViewCalendarCell делает это в конструкторе:
Public Sub New()
Me.Style.Format = "d"
End Sub
Формат никогда не меняется на «t» (формат времени).
Я не узнал, как применить формат из столбца-владельца для использования этого woraround atm:
Public Overrides Function GetInheritedStyle _
(ByVal inheritedCellStyle As _
System.Windows.Forms.DataGridViewCellStyle, _
ByVal rowIndex As Integer, ByVal includeColors As Boolean) _
As System.Windows.Forms.DataGridViewCellStyle
If Me.OwningColumn IsNot Nothing Then
Me.Style.Format = Me.OwningColumn.DefaultCellStyle.Format
End If
Return MyBase.GetInheritedStyle(_
inheritedCellStyle, rowIndex, includeColors)
End Function
Однако, так как это всего лишь хак, я хочу знать, как это «как это сделать», чтобы применить стиль ячейки по умолчанию из DataGridViewColumn к его ячейкам. Есть предложения?