在dataGridView中创建自定义格式字符串

我有一个dataGridView,其dataSource是一个dataTable。

我的问题是我希望某些列以hex显示。 使用这样的东西,我可以做到这一点:

foreach (DataGridViewColumn c in grid.Columns) { if (DISPLAYED_IN_HEX.Contains(c.Name)) { c.DefaultCellStyle.Format = "X"; } } 

我的问题是,我希望这个hex值前置为0x,以免混淆任何人他们是hexforms。 dataTable中的值是各种整数类型。 我研究了创建一个自定义的IFormatProvider,但我认为我的编码技能尚未达到标准。 还有其他可能的解决方

是的,CellFormatting活动会很好。 这是一个例子,它试图将第一列中的十进制数转换为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; } } } 

可能不是最有效的方法,但也许您可以处理CellFormatting事件,然后逐个单元地更改格式。