龙空技术网

懒人代码:C# TextBox限制整数和浮点数输入代码

懒人代码 120

前言:

现时我们对“懒人代码”可能比较重视,各位老铁们都想要知道一些“懒人代码”的相关知识。那么小编也在网络上收集了一些对于“懒人代码””的相关知识,希望朋友们能喜欢,小伙伴们快快来了解一下吧!

上次说到了对string的扩展,这次对TextBox进行扩展一下。

在TextBox需要仅输入数字的场合,可以通过KeyPress方法实现。

但是如果一个庞大的项目,里面有一堆的TextBox需要限制仅输入整数。。。你咋整?

每一个都写一个KeyPress,这不符合我们懒人的作风,就是复制粘贴。。。。多了手指头也会酸掉。。。

嗯。。。不多说了,直接上代码。

还是通过重构的方式实现。。。

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Windows.Forms;namespace System{    public static class CommControl    {        #region 限制:TextBox内仅能输入整数        /// <summary>        /// 限制:TextBox内仅能输入整数        /// </summary>        /// <param name="tb"></param>        public static void SetNumber(this TextBox tb)        {            // 限制:TextBox内仅能输入整数            tb.KeyPress += new KeyPressEventHandler(tb_KeyPress_SetNumber);        }        /// <summary>        /// 实现方法:TextBox内仅能输入整数        /// </summary>        /// <param name="sender"></param>        /// <param name="e"></param>        static void tb_KeyPress_SetNumber(object sender, KeyPressEventArgs e)        {            // 退格键,这个得保留            if ((int)e.KeyChar == 8) { return; }            // 判断所输入的是否在0~9数字范围外            if ((int)e.KeyChar < 48 || (int)e.KeyChar > 57)            {                e.Handled = true;                return;            }        }        #endregion        #region 限制:TextBox内仅能输入浮点数        /// <summary>        /// 限制:TextBox内仅能输入浮点数        /// </summary>        /// <param name="tb"></param>        public static void SetDouble(this TextBox tb)        {            // 限制:TextBox内仅能输入浮点数            tb.KeyPress += new KeyPressEventHandler(tb_KeyPress_SetDouble);        }        /// <summary>        /// 实现方法:TextBox内仅能输入浮点数        /// </summary>        /// <param name="sender"></param>        /// <param name="e"></param>        static void tb_KeyPress_SetDouble(object sender, KeyPressEventArgs e)        {            // 退格键,这个得保留            if ((int)e.KeyChar == 8) { return; }            // 输入的内容为“.”的情况            if ((int)e.KeyChar == 46)            {                // 判断输入的“.”前面是否有内容,若没有,限制输入                if (((TextBox)sender).Text.Length == 0)                {                    e.Handled = true;                    return;                }                // 判断前面是否已经输入了“.”                if (((TextBox)sender).Text.IndexOf('.') > -1)                {                    e.Handled = true;                    return;                }                else                {                    return;                }            }            // 判断所输入的是否在0~9数字范围外            if ((int)e.KeyChar < 48 || (int)e.KeyChar > 57)            {                e.Handled = true;                return;            }        }        #endregion    }}

估计有程序猿会问我,这玩意咋用。。。

很简单,在你项目里建一个类文件,把这段代码复制粘贴进去。然后。。。。在你程序的TextBox对象后面输入一个点看一下,惊喜有木有。。。。

懒人代码

对。。。。你没看错。。下面俩个方法就是我们刚才扩展的方法。调用一下,你的文本框就只能输入整数或者浮点数了。。。

            TextBox tb = new TextBox();                        // TextBox仅能输入整数            tb.SetNumber();            // TextBox仅能输入浮点数            tb.SetDouble();

很简单有木有。。。。很懒有木有。。。

有时候,懒到一定程度了,就成了创新

标签: #懒人代码