J'ai utilisé cet exemple pour créer une colonne DateTime pour un DataGridView dans mon application winforms.datagridview applique cellstyle aux cellules
http://msdn.microsoft.com/en-us/library/7tas5c80.aspx
Je peux voir la nouvelle colonne dans le Concepteur Windows Forms et l'ajouter à un DataGridView existant. Cependant, je veux pouvoir changer le format d'affichage quand je change le "DefaultCellStyle" dans le concepteur.
Le concepteur généré code ressemble à ceci:
DataGridViewCellStyle1.Format = "t"
DataGridViewCellStyle1.NullValue = Nothing
Me.colDate.DefaultCellStyle = DataGridViewCellStyle1
Me.colDatum.Name = "colDate"
Me.colDatum.Resizable = System.Windows.Forms.DataGridViewTriState.[False]
Ce qui est bien. Mais puisque le code du DataGridViewCalendarCell fait cela dans le constructeur:
Public Sub New()
Me.Style.Format = "d"
End Sub
Le format ne change jamais à "t" (format de l'heure). Je n'ai pas trouvé comment appliquer le format de la colonne à posséder ce que j'utilise 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
Cependant, comme cela est juste une astuce que je veux savoir qui est le « comment il se doit » être fait moyen d'appliquer le cellstyle par défaut d'un DataGridViewColumn à ses cellules. Aucune suggestion?