silverlight:RadMaskedTextBox设置MaskType="Numeric"及Mask="n"时的一个bug

telerik的控件总体来说质量还算上乘,但是偶尔也会遇一些小bug:

比如 <telerik:RadMaskedTextBox Mask="n" MaskType="Numeric" />,这样的本意是让输入框只能输入带小数位的数字,但是很多用户在输入“零点几”的小数时,通常直接输入".12",即:不输入第一个0,直接输入点,这时你会杯具的发现,整个屏幕直接白了(Silverlight应用程序级的错误).

我没看telerik的源码,任感觉猜测应该是".“在Convert成浮点数时抛异常了(老外估计也没想到中国人这么懒,呵),一个简单的解决办法,在KeyDown事件中检测这种特殊情况,如果是只有一个点,就直接赋值为0.00,同时将光标定位到“.”之后,最后禁止事件继续向上冒泡。

        private void RadMaskedTextBox_KeyDown(object sender, KeyEventArgs e)
        {
            var maskedTextBox = (sender as RadMaskedTextBox);
            if (maskedTextBox == null) { return; }
            if (e.Key == Key.Unknown && maskedTextBox.Value == null)
            {
                var extendedtextBox = e.OriginalSource as TextBox;
                if (extendedtextBox != null)
                {
                    extendedtextBox.Text = "0.00";
                    extendedtextBox.Select(2, 0);//将光标直接定位到"."之后
                }
                e.Handled = true;
            }
        }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大内老A

扩展UltraGrid控件实现对所有数据行的全选功能[Source Code下载]

在前面一篇文章中,我通过对三种Infragistics 控件(UltraToolBarManager、UltraGird和UltraListView)进行扩展,...

301100
来自专栏韩东吉的Unity杂货铺

零基础入门 20: UGUI DropDown

(题外话,因为这期分享中段制作之后,微信平台抽疯,Gif图无法使用,导致我不得不尝试用其他的方式来让文章看起来没那么死板,在后面的部分展示中,我插入了视频文件而...

38240
来自专栏施炯的IoT开发专栏

修改Windows Mobile默认按键消息

本文讲述了如何利用SHCMBM_OVERRIDEKEY来修改Windows Mobile默认按键消息的方法。 问题来源: 如何屏蔽talk键 (打电话的那个键)...

19960
来自专栏携程技术中心

干货 | React Fiber 初探

21020
来自专栏技术总结

Photos存储、获取、更改照片详解

28890
来自专栏阿炬.NET

JQuery文件上传插件ajaxFileUpload在Asp.net MVC中的使用

38390
来自专栏我有一个梦想

UE4新手之编程指南

  虚幻引擎4为程序员提供了两套工具集,可共同使用来加速开发的工作流程。 新的游戏类、Slate和Canvas用户接口元素以及编辑器功能可以使用C++语言来编写...

57080
来自专栏我的博客

JQuery表格表单操作

1、多选框应用代码示例 <form action=”#” method=”post”> 你喜欢的明星是?<br /> <input type=”checkbox...

31240
来自专栏我有一个梦想

Python 项目实践一(外星人入侵小游戏)第三篇

接着上节的继续学习, 一 重构:模块game_functions 在大型项目中,经常需要在添加新代码前重构既有代码。重构旨在简化既有代码的结构,使其更容易扩展。...

35890
来自专栏林德熙的博客

win10 uwp 萤火虫效果 安装 win2d创建界面后台的方法核心代码

本文在Nukepayload2指导下,使用他的思想用C#写出来。 本文告诉大家,如何使用 win2d 做出萤火虫效果。

14710

扫码关注云+社区

领取腾讯云代金券