C# winform 中 文本框输入的数字以千分号的形式显示

比如输入1121120显示1,121,120... 比如 输入 1121120
显示 1,121,120
展开
 我来答
freeeeeewind
推荐于2016-07-27 · TA获得超过1万个赞
知道大有可为答主
回答量:3227
采纳率:94%
帮助的人:1356万
展开全部

1)在窗体Form1上布置一个TextBox控件

2)对textBox1的KeyPress事件和TextChanged编程。完整代码如下

using System;
using System.Windows.Forms;

namespace WindowsFormsApplication5
{
    public partial class Form1 : Form
    {

        public Form1()
        {
            InitializeComponent();
            textBox1.Text = "";
        }

        private void textBox1_KeyPress(object sender, 
                KeyPressEventArgs e)
        {
            // 只允许输入数字和Del
            if (!char.IsDigit(e.KeyChar) && e.KeyChar != (char)8)
            {
                e.Handled = true;
            }
        }


        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(textBox1.Text)) return;
            
            // 按千分位逗号格式显示!
            double d = Convert.ToDouble(skipComma(textBox1.Text));
            textBox1.Text = string.Format("{0:#,#}", d);
            
            // 确保输入光标在最右侧
            textBox1.Select(textBox1.Text.Length, 0);
        }

        private string skipComma(string str)
        {
            string[] ss = null;
            string strnew = "";
            if (str == "")
            {
                strnew = "0";
            }
            else
            {
                ss = str.Split(',');
                for (int i = 0; i < ss.Length; i++)
                {
                    strnew += ss[i];
                }
            }
            return strnew;
        }
    }
}

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式