WPF TextBox财会金额规范输入(千分号样式)

本文介绍如何使用WPF TextBox控件设计一个专门用于财会金额输入的功能,控制位数在百亿级别,同时讨论了通过Double转换验证输入格式的两种方法,包括实时校验和事后try...catch处理。
摘要由CSDN通过智能技术生成

用于财会金额输入的文本框,我设计时将位数控制在了百亿级内,应该足够用了
当然,也可以用try……catch在用户输入完成后进行Double转换,失败报输入格式不正确来节省代码
毕竟下面这么多的代码,根据前辈大佬的说法,在业内是被嫌弃的

/// 阻止非法输入
        private void theCode_PreviewTextInput(object sender, TextCompositionEventArgs e)
        {
            Regex re = new Regex("[^0-9.]+");//正则表达式将输入内容限制为数字和小数点
            TextBox temp = sender as TextBox;
            string str1 = temp.Text;
            int i = 11;
            if (str1.Contains("-"))
                i = 12;
            bool tp = false;
            if (str1.Contains("."))
            {
                str1 = str1.Substring(0, str1.IndexOf('.'));
                tp = temp.SelectionStart < str1.IndexOf('.') && str1.Length >= i;
            }
            else
                tp = (!e.Text.Equals(".")) && str1.Length >= i;
            e.Handled = (re.IsMatch(e.Text) || temp.SelectedText.Contains(".") || temp.SelectedText.Contains("-") || tp);            
        }

        /// 正负金额变色
        private void theCode_TextChanged(object sender, TextChangedEventArgs e)
        {
            TextBox temp = sender as TextBox;
            string str1 = temp.Text;
            if (str1.Equals("
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值