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 条评论
登录 后参与评论

相关文章

来自专栏我有一个梦想

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

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

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

修改Windows Mobile默认按键消息

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

1856
来自专栏刘望舒

Android应用优化之流畅度实操

2823
来自专栏程序员的SOD蜜

“老坛泡新菜”:SOD MVVM框架,让WinForms焕发新春

火热的MVVM框架 最近几年最热门的技术之一就是前端技术了,各种前端框架,前端标准和前端设计风格层出不穷,而在众多前端框架中具有MVC,MVVM功能的框架成为耀...

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

零基础入门 20: UGUI DropDown

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

2284
来自专栏木宛城主

SharePoint 中时间轴 Timeline的实现

客户需要在OA中实现每日动态功能,能够记录每一位员工的每天的工作动态,我很快想到了时间轴,因为时间轴能很直观的现实员工每一刻的动态。就像Facebook的Ti...

2186
来自专栏携程技术中心

干货 | React Fiber 初探

1712
来自专栏iOSDevLog

更多关于CocoaScript目录

3596
来自专栏向治洪

iOS开发入门笔记

iOS开发入门笔记 本文面向已有其它语言(如Java,C,PHP,Javascript)编程经验的iOS开发初学者,初衷在于让我的同事一小时内了解如何开始开发i...

4016
来自专栏前端说吧

vue-awesome-swiper - 基于vue实现h5滑动翻页效果

说到h5的翻页,很定第一时间想到的是swiper。但是我当时想到的却是,vue里边怎么用swiper?!

4683

扫码关注云+社区