首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DataGridViewCellStyle.Format需要什么字符串才能在数字之前或之后添加符号?

DataGridViewCellStyle.Format需要什么字符串才能在数字之前或之后添加符号?
EN

Stack Overflow用户
提问于 2020-12-31 01:06:33
回答 1查看 311关注 0票数 0

假设我有一个WinForms DataGridView,并且我正在向它添加一个DataGridViewTextBoxColumn,我如何告诉它我希望在不修改原始数据本身的情况下为其中的所有数据添加一个°符号后缀?

我已经考虑过更改DefaultCellStyle.Format,但我似乎只能获得固定数量的数字,并以符号作为后缀,如下所示:

代码语言:javascript
复制
new DataGridViewTextBoxColumn
{
    DefaultCellStyle = new DataGridViewCellStyle
    {
        Format = "0.000°"
    }
}

上面的代码会使4的原始值在我希望它显示为时显示为4.000°,而在我希望它显示为4.1234°时显示为4.1234°。目前我不太关心文本值,但我正在寻找一个通用的格式说明符,它基本上是这样说的:“还给我原始值”,然后我将在该格式说明符的末尾添加°符号。这可以做到吗?

EN

回答 1

Stack Overflow用户

发布于 2020-12-31 01:46:37

作为对列应用自定义格式的一般解决方案,如添加后缀,您可以使用CellFormatting事件。当单元格的内容需要格式化以进行显示,并且您有机会对其应用自定义格式时,将引发此事件。

示例-在DataGridView中为像元值添加后缀

代码语言:javascript
复制
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}°";
    }
};

注意:对于数值的,像"#.#############°"这样的格式也可以做到这一点:

代码语言:javascript
复制
dataGridView1.Columns["Temperature"].DefaultCellStyle.Format = "#.#############°"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65510803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档