c# - 如何使文本框只接受货币格式输入?

标签 c# wpf validation

enter image description here

这是程序的截图。如您所见,我按照我想要的方式制作了输出格式。我使用了这段代码: <DataGridTextColumn Header="Price" Binding="{Binding Path=Price, StringFormat=C, ConverterCulture='de-DE'}"/>

如何让文本框只接受数字作为货币格式的输入,或者如何让它在输入时自动格式化?我尝试了一些在这里和那里找到的代码,但没有用。希望有人能帮助我并给我一些详细信息。数据必须保存在SQL Server数据库中,直到现在我都使用LINQ。

最佳答案

您可以创建一个 TextChanged 事件并随时设置文本格式。

    private void textBox1_TextChanged(object sender, EventArgs e)
    {
        textBox1.Text = string.Format("{0:#,##0.00}", double.Parse(textBox1.Text));
    }

    private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) && (e.KeyChar != '.'))
        {
            e.Handled = true;
        }

        // only allow one decimal point
        if ((e.KeyChar == '.') && ((sender as TextBox).Text.IndexOf('.') > -1))
        {
            e.Handled = true;
        }
    }

来自: https://stackoverflow.com/a/15473340/5588364

并且: https://stackoverflow.com/a/463335/5588364

关于c# - 如何使文本框只接受货币格式输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33847052/

相关文章:

xml - 将属性值指定为 CDATA

c# - 使用 GetType() 检查其类型后,将泛型类型转换为引用类型。如何?

c# - sitefinity 模块和小部件之间的关系

ip-address - 在 C# 中根据 IP 地址和子网掩码计算子网号

WPF 动画 - 为什么 "By"不能有负值?

validation - 如何在 Symfony2 的验证组件中使用闭包?

c# - 如何将制表符插入到 C# 控制台应用程序的字符串中?

c# - 查看不断变化的数据集的聚合的最佳架构选择是什么?

c# - 窗口背景颜色 : appears darker than specified?

javascript - 仅在验证文件大小和文件扩展名后提交表单