Creating a custom format string in a dataGridView
Solution 1
Yes, the CellFormatting event will do just fine. Here's an example one, it tries to convert a decimal number in the first column to hex:
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) {
if (e.ColumnIndex == 0 && e.Value != null) {
long value = 0;
if (long.TryParse(e.Value.ToString(), out value)) {
e.Value = "0x" + value.ToString("X");
e.FormattingApplied = true;
}
}
}
Solution 2
Not the most efficient way maybe, but maybe you could handle the CellFormatting
event and then change the formatting on a cell by cell basis.
Comments
-
Andy almost 2 years
I have a dataGridView whose dataSource is a dataTable.
My problem is that I want certain columns to be displayed in Hex. I can get that far with using something like this:
foreach (DataGridViewColumn c in grid.Columns) { if (DISPLAYED_IN_HEX.Contains(c.Name)) { c.DefaultCellStyle.Format = "X"; } }
My issue though is that I want this hex value prepended with 0x so as not to confuse anyone that they are in hexidecimal form. The values in the dataTable are various integral types. I looked into creating a custom IFormatProvider, but I don't think my coding skills are up to that par yet. Any other possible solutions?