Díky moc, jen vnutit datagridview custom formatter... (BinaryFormatter použit z příkladu viz. link výše) Vypadalo, že bude stačit :
With dgv
.Columns(0).DefaultCellStyle.FormatProvider = New BinaryFormatter()
.Columns(0).DefaultCellStyle.Format = "B" ' B or H or O
End With
Bohužel vlastní formát byl tvrdošíjně odmítán... Původní snahou bylo se zcela vyhnout události DataGridView.CellFormatting, ale bohužel bez ní nefunguje ani custom formatter. Řešení nalezeno zde: http://stackoverflow.com/questions/35515... Pak v prvku poděděném z datagridview (vb.net):
Protected Overrides Sub OnCellFormatting(ByVal e As System.Windows.Forms.DataGridViewCellFormattingEventArgs)
If TypeOf e.CellStyle.FormatProvider Is ICustomFormatter Then
e.Value = TryCast(e.CellStyle.FormatProvider.GetFormat( _
GetType(ICustomFormatter)), ICustomFormatter).Format( _
e.CellStyle.Format, e.Value, e.CellStyle.FormatProvider)
e.FormattingApplied = True
End If
MyBase.OnCellFormatting(e)
End Sub
Nebo prostě dle gusta, příklad :
Protected Overrides Sub OnCellFormatting(ByVal e As System.Windows.Forms.DataGridViewCellFormattingEventArgs)
If e.ColumnIndex = 0 Then
e.Value = Convert.ToString(CByte(e.Value), 2).PadLeft(8, "0"c)
e.FormattingApplied = True
End If
MyBase.OnCellFormatting(e)
End Sub
Smiřuji se s tím, že takový předdefinovaný formát není. Děkuji za reakci a podporujte kojení.
|