Silverlight中TextBox禁止输入和粘贴非数值字符

说明:Silverlight程序中有一个文本框控件TextBox名为textBox1,TextChanged事件处理函数如下,利用正则表达式禁止输入和粘贴非数值字符。

private string originStr = "";//存放符合要求的数值字符串
        private Regex regex = new Regex(@"^[+-]?(?!0\d)\d+(\.[0-9]+)?$");//数值字面量正则表达式
        private void textBox1_TextChanged(object sender,TextChangedEventArgs e)
        {
            string txtStr = textBox1.Text;
            if (string.IsNullOrEmpty(txtStr))
            {
                originStr = "";
                return;
            }
            if (txtStr.IndexOf('.') > 0 && txtStr.LastIndexOf('.') == txtStr.Length - 1 && txtStr.IndexOf('.') == txtStr.LastIndexOf('.'))
            {
                if (txtStr.IndexOf('-') == 0 && txtStr.IndexOf('.') == 1)
                {
                }
                else
                {
                    originStr = txtStr;
                    return;
                }
            }
            else if (txtStr.IndexOf('-') == 0 && txtStr.LastIndexOf('-') == 0 && txtStr.LastIndexOf('-') == txtStr.Length - 1)
            {
                originStr = txtStr;
                return;
            }
            else if (regex.IsMatch(txtStr))
                originStr = txtStr;
            else
            {
                textBox1.Text = originStr;
                if (!string.IsNullOrEmpty(txtStr))
                    textBox1.Select(originStr.Length,1);
            }
        }

相关文章

如何在Silverlight4(XAML)中绑定IsEnabled属性?我试过简单的...
我正在编写我的第一个vb.net应用程序(但我也会在这里标记c#,...
ProcessFile()是在UIThread上运行还是在单独的线程上运行.如...
我从同行那里听说,对sharepoint的了解对职业生涯有益.我们不...
我正在尝试保存一个类我的类对象的集合.我收到一个错误说明:...
我需要根据Silverlight中的某些配置值设置给定控件的Style.我...