c# - 文本框显示格式

标签 c# winforms textbox formatting

我想在每组 3 位数字后添加“,”。例如:当我键入 3000000 时,文本框将显示 3,000,000,但值仍然是 3000000。
我尝试使用 maskedtexbox,有一个缺点是 maskedtexbox 显示了类似 _,__,__ 的数字。

最佳答案

尝试将此代码添加到 TextBoxKeyUp 事件处理程序中

private void textBox1_KeyUp(object sender, KeyEventArgs e)
{
    if (!string.IsNullOrEmpty(textBox1.Text))
    {
        System.Globalization.CultureInfo culture = new System.Globalization.CultureInfo("en-US");
        int valueBefore = Int32.Parse(textBox1.Text, System.Globalization.NumberStyles.AllowThousands);
        textBox1.Text = String.Format(culture, "{0:N0}", valueBefore);
        textBox1.Select(textBox1.Text.Length, 0);
    }
}

是的,它会改变存储在文本框中的值,但只要您需要实际数字,您可以使用以下行从文本中获取它:

int integerValue = Int32.Parse(textBox1.Text, System.Globalization.NumberStyles.AllowThousands);

当然不要忘记检查用户在文本框中输入的内容是否是一个有效的整数。

关于c# - 文本框显示格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7671148/

相关文章:

WPF:简单的文本框数据绑定(bind)

c# - SendSmsMessageAsync 示例?

c# - Microsoft Speech - 识别和提取可变长度的数字

C# 和保存日期字段到 MS Access 数据库

继承抽象类并实现接口(interface)的 C# 窗体。

c# - 在更新期间停止 TextBox 闪烁

c# - 可空对象的类

c# - 反射(reflection):程序集获取版本给出错误的版本值

wpf - F# WPF 脚本,在按钮单击时绘制图形

c# - Windows 窗体中用于实时搜索的文本框