说实话重来没想到验证输入是如此的苦逼的一件事情。

    网上好多验证都是在输入完成后再验证,我的想法是在输入的时候就限制输入,这样我就不用再写代码来验证了
应为是手机端,所以不用判断其他非法字符,直接把Textbox的属性InputScope设置为"Number"就是了,反正在目前版本的UWP中纯数字键盘还无法切换到其他的字符键盘去

下面的代码是一个金额文本框的验证,算是抛砖引玉吧。欢迎还有更好的方案指点!

 
直接上代码:
/// <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() == )
{
valueTextBox.MaxLength = valueTextBox.Text.IndexOf('.') + ;
}
else
{
valueTextBox.MaxLength = valueTextBox.Text.IndexOf('.') + ;
}
}
else
{
//当整数达到9位后自动补全小数位,并移动光标到最后一位
if (valueTextBox.Text.Count() == )
{
//valueTextBox.Text += ".00";
valueTextBox.MaxLength = ;
valueTextBox.SelectionStart = valueTextBox.Text.Length;
}
}
}
else
{
//为空就重置金额输入框的最大字符数为12
valueTextBox.MaxLength = ;
} }
/// <summary>
/// 当整数位为9位且当前输入的是小数点时,设置textbox最大字符数为12,移动光标到最后位置
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void valueTextBox_KeyDown(object sender, KeyRoutedEventArgs e)
{
//不知道为什么和默认的小数点的代码不一样,默认为110
if (e.Key.ToString() == "")
{
if (valueTextBox.Text.Count() == )
{
valueTextBox.MaxLength = ;
valueTextBox.SelectionStart = valueTextBox.Text.Length;
}
}
}
太晚了下次再补GIF上来

[UWP小白日记-15]在UWP手机端实时限制Textbox的输入的更多相关文章

  1. [UWP小白日记-11]在UWP中使用Entity Framework Core(Entity Framework 7)操作SQLite数据库(一)

    前言 本文中,您将创建一个通用应用程序(UWP),使用Entity Framework Core(Entity Framework 7)框架在SQLite数据库上执行基本的数据访问. 准备: Enti ...

  2. [UWP小白日记-9]页面跳转过度动画(二)

    又打算动手写了 [UWP小白日记-6]页面跳转过度动画 上次写的,这次随着学习的进度使用新的玩法. 最近在搞GIT的学习,结果把好好的项目玩坏,都不知道当时是怎么想的拿在写的APP来玩GIT,害我重写 ...

  3. [UWP小白日记-8]一些零碎的东西

    设置启动窗口大小 直接上代码了没什么好解释的了,既然能设置最小,那铁定就能设置最大 public MainPage() { //设定窗口启动显示大小 ApplicationView.Preferred ...

  4. [UWP小白日记-3]记账项目-1

    学了一段时间的UWP,来个项目试试手. 本来是想边做边学MVVMLight的结果感觉MVVM对于萌新来说太高难,以后再把这个项目改造成MVVMLight框架的项目. 下面进入正题. 中间那快空白打算放 ...

  5. [UWP小白日记-4]记账项目-2

    手机端: 待续…… 哈哈这个代码真是好长时间啊,没办法萌新你们都懂的,UI是改了又改,知识也在慢慢积累, 所以这效率就低下了点 UI是改了又改,代码是不断了改,所以搞到现在都没开发完成

  6. 小白日记15:kali渗透测试之弱点扫描-漏扫三招、漏洞管理、CVE、CVSS、NVD

    发现漏洞 弱点发现方法: 1.基于端口服务扫描结果版本信息,比对其是否为最新版本,若不是则去其 官网查看其补丁列表,然后去逐个尝试,但是此法弊端很大,因为各种端口应用比较多,造成耗时大. 2.搜索已公 ...

  7. [UWP小白日记-7]转换MVA学院的XML字幕为SRT (二)

    瞎扯淡 上个版本,非常蠢用来N多的循环导致非常卡性能烂得不行,这次使用XmlDocument类来读取XML字幕 其实根本不用各种扒XML字幕,好吧我这是学习使用XmlDocument类,嗯就是这个样子 ...

  8. [UWP小白日记-6]页面跳转过度动画

    前言 在学习中发现页面导航默认是没有过度动画的,直接就导航过去太粗暴了( ̄へ ̄),于是打算上动画结果不言而喻自己进了坑完全不懂动画,然后就是各种疯狂(´・_・`)的搜索资料看了后终于有点头绪. 再后来 ...

  9. [UWP小白日记-5]转换MVA学院的XML字幕为SRT

    开源地址:第二版开源地址GIT 暂时用不了了,在最新的WIN10 10586.494系统上回闪退,正在酝酿第二版 O(∩_∩)O哈哈~ 新版已经完工:第二版 地方MVA上好多教程,但是微软的所有中国网 ...

随机推荐

  1. Jeffrey Richter's Power Threading Library

    Jeffrey Richter's Power Threading Library The Power Threading Library consists of a number of classe ...

  2. Effective C++(19) 设计class犹如设计type

    问题聚焦:     这一节不涉及代码,但是我们需要明确的一点是,思想比代码要重要得多.     设计优秀的classes是一项艰巨的工作,就像设计好的types一样.     我们应该带着和“语言设计 ...

  3. ToolBox Analysis & Design

    话说小菜过做已近3年,虽出身PHP后项目大多涉及.net,系统也做得比较繁杂,从常见的CMS,企业OA,ERP,也涉及到电商系统的开发定制,爬虫,工具不一而足,其中web系统居多. 由于表现良好,时常 ...

  4. IP 首部检验和算法

    原创博文,转载请注明出处. 在学习TCP/IP 详解的过程中遇到了不止一次的关于检验和的概念,在吸取了他人理解的前提下,我决定用Wireshark 进行抓包分析. 首先我们得知道IP数据包格式 首先把 ...

  5. C++ string和c类型字符数组的比较

    在c++中string是很方便操作的字符串,支持多种算数运算和比较运算,操作起来非常灵活.string也具有一些容器的性质,可以通过迭代器对字符元素进行访问 c类型的字符数组有如下三种初始化方式: / ...

  6. json序列化NHibernate的实体

    在使用nhibernate时,想将实体对象序列化成json字符串,然后打印在日志中. 序列化时会出现问题,应该是因为这个实体被hibernate管理的原因.具体原因没有分析. 解决方案:为实体创建一个 ...

  7. DES加密解密帮助类

    public class DESCrypto { /// <summary> /// 初始化des实例秘钥及向量 /// </summary> /// <param na ...

  8. P2P中的NAT穿越方案简介

    文章链接: http://www.shipin.it/Index/videolist/id/68.html

  9. OAuth的一个.NET开源实现

    从编译DotNetOpenAuth中学到的程序集强签名知识 OAuth的一个.NET开源实现,官方网站:http://dotnetopenauth.net/ . 从GitHub签出DotNetOpen ...

  10. 基于MongoDB打造.Net的分布式Session子系统

    基于MongoDB打造.Net的分布式Session子系统 Taobao有她自己的分布式session框架,.net阵营也不能落后了,在下做了个基于MongoDB的支持最多26台MongoDB的分布式 ...