我恳请您耐心阅读我的故事,以解决一个看似简单的问题,
我的主要目的是在 datagridview 中做千位分隔符,这意味着当我输入 12345 时它变成 12,345 与其他任务的区别是当用户在他或她离开单元格时不输入时执行此操作,
我在 datagridview 事件中找不到任何方法,只要我在单元格中添加一个数字就会触发,例如,如果目的是在 feeColumn 中写入 12345,它必须被触发五次,
经过多次研究,我遇到了这段代码,但它有一些问题:
myGrid:
ItemName Quantity FeeColumn
Private void grdTrading_CurrentCellDirtyStateChanged(object sender, System.EventArgs e)
{
If (grdTrading.IsCurrentCellDirty )
{
grdTrading.CommitEdit(DataGridViewDataErrorContexts.Commit)
}
}
Private void grdTrading_CellValueChanged(object sender , System.Windows.FormsDataGridViewCellEventArgs e)
{
grdTrading.Columns[ColumnFee.Name].DefaultCellStyle.Format=(Decimal.Parse(grdTrading.Rows[0].Cells[ColumnFee.Name].Value.Tostring())).Tostring("#,##0")
}
现在有什么问题?
当它第一次进入
grdTrading_CurrentCellDirtyStateChanged
并执行 commitedit 时,它不再允许将任何数据放入单元格并在用户更改其单元格时删除数据现在你假设有数据,它成功运行,甚至在
cellValueChanged
我将任何数字添加到费用列时运行,我的意思是 1 然后 12 然后 123 然后 1234 然后 12345 但是当我输入时我的网格中仍然没有逗号,
我真的厌倦了这个问题,欢迎任何帮助或任何其他解决方案给我朋友,