【发布时间】:2017-06-23 22:04:30
【问题描述】:
我有一个将文本框值格式化为货币的函数。我在文本框离开事件中做到了这一点。
private void txtSellingPrice_Leave(object sender, EventArgs e)
{
txtSellingPrice.Text = FormatCurrency(txtSellingPrice.Text);
}
例如,用户输入 100,输出将是 100 美元。
我的问题是我将如何在 datagridview 单元格中执行此操作?我已经尝试在编辑控件中添加离开事件。我还尝试了 DefaultCellStyle.Format = "C2",这可行,但是当用户更改当前值时,例如 $100.00 更改为 50。输出应为 $50.00。谢谢。
【问题讨论】:
-
您应该考虑使用 NumericBox 而不是 TextBox,以及在 DataGrid 中使用 NumericColumn 而不是 TextColumn。数字特定控件旨在完全按照您的意愿行事。
-
谢谢,但我认为 NumericBox 是一个自定义控件。它在我的工具箱中不可用。我正在使用 Visual Studio 2015。可用的是 numericUpDown 控件。
-
如果我用 BindingSourc 和 BindingListView 创建一个简单的 DataGridView。该列的DevaultCellStype = C2,则值显示为$ 50.00,在键入过程中人们可能会将其更改为12.346,但是一旦离开单元格,它就会自动更改为$ 12.35。这不是你想要的吗?
-
@HaraldCoppoolse 是的,但我没有这样做。如果我在单元格没有变化后输入 100。值仍然是 100。我的 datagridview 没有数据源。我允许用户在 datagridview 中输入值。