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

    网上好多验证都是在输入完成后再验证,我的想法是在输入的时候就限制输入,这样我就不用再写代码来验证了
应为是手机端,所以不用判断其他非法字符,直接把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. Web学习-apache视图log刊物

    视图apache刊物 apache日志位置 不同的系统位置不同. widnows 假如是windows的话,xampp下应该是都存在的,直接去找apache的folder/log/access.log ...

  2. 深入浅出SQL注入

    原文:深入浅出SQL注入 之前在做学生信息管理系统和机房收费系统的时候,对于SQL注入的问题已经是司空见惯,但是并没有真正的地形象生动的理解SQL注入到底是什么玩意儿.直到这次做牛腩才在牛老师的举例之 ...

  3. 利用cxfreeze将Python 3.3打包成exe程序

    参考自别人的博文:http://blog.csdn.net/yatere/article/details/6667230 步骤如下: (1) 下载cxfreeze后安装(先得安装python 3.3) ...

  4. C程序设计语言(第二版)习题:第二章

    这一章习题做着很舒服,毕竟很简单.所以很有感觉. 练习 2-1 Write a program to determine the ranges of char , short , int , and ...

  5. Competitive

  6. poj1001求幂

    这道题目是实质上就是高精度的乘法,虽然是带小数点的数多少次幂,但是开始我们需要将它变为整数进行求幂,然后再加上小数点,然后要考虑前导0,有效数位问题,做的时候要十分的小心 #include<io ...

  7. 自定义radio图标

    问题: 默认的radio控件不是很好看,我们能否自定义一个radio图标? 解决: 1.radio有input和lable两个标签. 2.<input>是前面的图标,选中后图标变化. 3. ...

  8. Ruby的对象模型

    目录 备注对象模型无图无真相基本规则代码示例如何修改Singleton Class?如何修改类型,如Child?类型方法是特殊的实例方法,这些方法定义在类型的Singleton Class中.备注 备 ...

  9. 记录最近在使用sprintf构造字符串时遇到的一个问题

    直接上代码: #include "stdio.h" #include "string.h" int main() { char szTmp[20] = {0}; ...

  10. Redis协议详解

    smark Beetle可靠.高性能的.Net Socket Tcp通讯组件 支持flash amf3,protobuf,Silverlight,windows phone Redis协议详解 由于前 ...