none
关于textbox限制输入的问题 RRS feed

  • 问题

  • 我有这样一个需求,就是textbox限制到11个字符,只能输入2位小数的数字。限制数字太简单直接弹数字键盘就是,现在的问题就是小数点后可以无限输入直到最大限制的11个字符
    2016年10月21日 14:44

答案

  • 还是自己来吧

    /// <summary>
            /// 检查输入金额,当检测到小数掉后只能输入2位小数
            /// 当充满12个字符后只能修改小数的值
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void valueTextBox_TextChanged(object sender, TextChangedEventArgs e)
            {
                //如果不为空
                if (valueTextBox.Text!=string.Empty)
                {
                    if (valueTextBox.Text.Contains('.'))
                    {
                        if (valueTextBox.Text.Count() == 10)
                        {
                            valueTextBox.MaxLength = valueTextBox.Text.IndexOf('.') + 3;
                        }
                        else
                        {
                            valueTextBox.MaxLength = valueTextBox.Text.IndexOf('.') + 3;
                        }
                    }
                    else
                    {
                        //当整数达到9位后自动补全小数位,并移动光标到最后一位
                        if (valueTextBox.Text.Count() == 9)
                        {
                            valueTextBox.Text += ".00";
                            valueTextBox.MaxLength = 12;
                            valueTextBox.SelectionStart = valueTextBox.Text.IndexOf(".") + 3;
                        }
                    }
                }
                else
                {
                    //为空就重置金额输入框的最大字符数为12
                    valueTextBox.MaxLength = 12;
                }
              
            }

    • 已标记为答案 Enious 2016年10月22日 15:10
    2016年10月22日 15:10