• 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个多小时的东西。。。

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

  • 相关阅读:
    随机发牌 代码
    网络传输 buf 封装 示例代码
    简易数据库实现 UNIX环境高级编程(APUE)第二十章 A Database Library
    状态机学习(六)解析JSON2
    又一篇四则运算代码
    c++ stl源码剖析学习笔记(三)容器 vector
    c++ stl源码剖析学习笔记(二)iterator
    Linux系统编程(16)——正则表达式入门
    Linux系统编程(15)——shell脚本语法
    Linux系统编程(14)——shell常用命令
  • 原文地址:https://www.cnblogs.com/Orange-C/p/4044751.html
Copyright © 2020-2023  润新知