在回车键上按文本框格式化数字

时间:2012-08-03 15:15:24

标签: c# winforms linq-to-sql textbox formatting

在Windows窗体中,我有一个文本框,我输入金额,例如我输入18369.25然后按Enter键,文本框格式应为:18 369,25
怎么做?

2 个答案:

答案 0 :(得分:1)

使用类似于以下内容的事件处理程序订阅文本框的KeyPress事件:

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    if (e.KeyChar == '\r')
    {
        decimal value;
        if (decimal.TryParse(
            textBox1.Text,
            NumberStyles.Any,
            CultureInfo.InvariantCulture,
            out value))
        {
            textBox1.Text = value.ToString(
                "### ### ##0.00",
                CultureInfo.InvariantCulture).TrimStart().Replace(".", ",");
        }
    }
}

答案 1 :(得分:0)

我做了一些评论,但似乎都没有。所以我提出了这个解决方案。我知道它不是最好的,但至少它起作用(至少你需要的):

    private void textBox1_KeyUp(object sender, KeyEventArgs e)        
    {
        if (e.KeyCode == Keys.Enter)
        {
            string s = textBox1.Text;
            if (s.Contains('.'))
            {
                string[] arr = s.Split('.');
                decimal dec = decimal.Parse(arr[0]);
                textBox1.Text = string.Format("{0},{1}", dec.ToString("## ###"), arr[1]);
            }
        }
    }

如果您有任何其他要求,请告诉我。 再见