我完全接受这可能是不可能的,但似乎有一个问题,看看是否有人有一个简单的答案。
我有一个用户定义格式为Cn或Fn的字段。用户希望能够(也可以)交换值上的符号(例如,-123.4将显示为£123.40)。是否有使用标准格式的简单方法?我找不到任何东西表明这是可能的,我将不得不生成某种形式的用户定义字符串来代表这些(这是可能的,但出于各种原因有问题)。
原因在于会计目的,其中数字与最容易解释的方式相反。我们无法更改原始数据,并且在格式化之前更改数据也不是直截了当的。
答案 0 :(得分:0)
用户点击列(排序)并说明交换签名。在那 点,我没有访问数据,因为它已经存在 在网格中格式化
你不能用这种方法吗?
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
var cell = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex];
if(cell.Value == null) return;
// say this is for example: £123.40
var ukCulture = new System.Globalization.CultureInfo("en-GB");
decimal value;
if (decimal.TryParse(cell.Value.ToString(), NumberStyles.Any, ukCulture, out value))
{
cell.Value = (-1*value).ToString("C", ukCulture);
}
}
每次用户点击此单元格时,值的符号都会互换。