zoukankan      html  css  js  c++  java
  • Silverlight 限制 规则输入(正整数或小数)的另一种“技巧”写法

    今天上午纠结一个问题很久,silverlight TextBox限制用户规则输入,要求只能输入正整数或则小数,小数点只能有且只有一个

    刚开始的时候就是想直接用keyDown事件里面来解决

       voidtxtParData_KeyDown(objectsender, KeyEventArgse) {

                TextBoxtxt=senderasTextBox;

                if (txt.Text.Length>=10) {

                    e.Handled=true;

                }else

                {

                    //屏蔽非数字按键,只能输入小数,e.handledtrue时代表没有录入,为false时代表已录入

                    if ((e.Key>=Key.NumPad0&&e.Key<=Key.NumPad9) || (e.Key>=Key.D0&&e.Key<=Key.D9) ||e.Key==Key.Unknown||e.Key==Key.Decimal) {

                        if (txt.Text.Contains(".") &&e.Key==Key.Decimal) {

                            e.Handled=true;

                            return;

                        }

                        e.Handled=false;

                    }

                    else{

                        e.Handled=true;

                    }

                }

    }

    发现这个根本不能满足要求,于是去找各种正则,进行匹配,依然不够好,纠结半天,最后老大一个点子,说这个可以再TextChanged 进行解决,才发现自己绕了很多弯路,代码

    voidtxtParData_TextChanged(objectsender, TextChangedEventArgse) {

                if ((senderasTextBox).Text.Length>0 ) {

                    doublesPEED;

                    if (!Double.TryParse((senderasTextBox).Text,outsPEED)||(senderasTextBox).Text.Length>10) {

                        (senderasTextBox).Text= (senderasTextBox).Text.Substring(0, (senderasTextBox).Text.Length-1);

                        (senderasTextBox).SelectionStart= (senderasTextBox).Text.Length;

                    }

                }

            }

    Double.TryParse//将数字的字符串表示形式转换为它的等效双精度浮点数。一个指示转换是否成功的返回值。

    今天第一次用,发现这个真是一个好东东,轻易解决我纠结2个多小时的东西。。。

    学艺不精,不懂的太多了,慢慢学,一点点进步...

  • 相关阅读:
    资料链接韦东山和尚观
    资源共享
    总结
    针对piix4_smbus ****host smbus controller not enabled的解决方法
    详解为什么32位系统只能用4G内存.
    在Server 2008下架设FTP服务器
    C面试题
    删除所有的.svn文件夹
    C语言宏定义技巧
    简单的重复登录控制(java版)
  • 原文地址:https://www.cnblogs.com/Orange-C/p/4044751.html
Copyright © 2011-2022 走看看