假设我有一个WinForms DataGridView,并且我正在向它添加一个DataGridViewTextBoxColumn,我如何告诉它我希望在不修改原始数据本身的情况下为其中的所有数据添加一个°符号后缀?
我已经考虑过更改DefaultCellStyle.Format,但我似乎只能获得固定数量的数字,并以符号作为后缀,如下所示:
new DataGridViewTextBoxColumn
{
DefaultCellStyle = new DataGridViewCellStyle
{
Format = "0.000°"
}
}上面的代码会使4的原始值在我希望它显示为4°时显示为4.000°,而在我希望它显示为4.1234°时显示为4.1234°。目前我不太关心文本值,但我正在寻找一个通用的格式说明符,它基本上是这样说的:“还给我原始值”,然后我将在该格式说明符的末尾添加°符号。这可以做到吗?
发布于 2020-12-31 01:46:37
作为对列应用自定义格式的一般解决方案,如添加后缀,您可以使用CellFormatting事件。当单元格的内容需要格式化以进行显示,并且您有机会对其应用自定义格式时,将引发此事件。
示例-在DataGridView中为像元值添加后缀
dataGridView1.DataSource = new[] {
new { City ="Tehran", Temperature= 4.12345},
new { City ="Kuala Lumpur", Temperature= 31.12345},
};
dataGridView1.CellFormatting += (obj, args) =>
{
if (args.RowIndex >= 0 && /*Not the row header*/
args.ColumnIndex == 1 && /*Desired column Index*/
args.Value != null && args.Value != DBNull.Value)
{
args.Value = $"{args.Value}°";
}
};

注意:对于数值的,像"#.#############°"这样的格式也可以做到这一点:
dataGridView1.Columns["Temperature"].DefaultCellStyle.Format = "#.#############°"https://stackoverflow.com/questions/65510803
复制相似问题