六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 30|回复: 0

文本框输入限制

[复制链接]

升级  22%

78

主题

78

主题

78

主题

举人

Rank: 3Rank: 3

积分
266
 楼主| 发表于 2013-2-7 03:29:34 | 显示全部楼层 |阅读模式
/***********************************************************************  * Copyright(c) 2010 XX公司  * CLR 版本: 2.0.50727.42  * 文 件 名:InputValidateInterFace.cs  * 创 建 人:FK  * 创建日期:2010-11-29 13:20:52  * 修 改 人:  * 修改日期:  * 备注描述:输入限制         ************************************************************************/using System;using System.Windows.Forms;namespace ScreenShow{    public sealed class InputValidate    {        #region 输入控制--限制只能输入浮点数、数字字符、整数        /// <summary>        /// 限制只能输入浮点数和负号        /// </summary>        /// <param name="sender"></param>        /// <param name="e"></param>        public void InputDecimalMinus(object sender, KeyPressEventArgs e)        { //限制只能输入浮点数            //如果不是0~9(48~57)、.(46)、Enter(13)、BreakSpace(8),不处理            if ((e.KeyChar < 48 || e.KeyChar > 57) && e.KeyChar != 8 && e.KeyChar != 13 && e.KeyChar != 46 && e.KeyChar != 22 && e.KeyChar != 3 && e.KeyChar != 24 && e.KeyChar != 26 && e.KeyChar != 45)            {                e.Handled = true;            }            //允许输入负号            if (e.KeyChar == 45 && (((TextBox)sender).SelectionStart != 0 || ((TextBox)sender).Text.IndexOf("-") >= 0))            {                e.Handled = true;            }            //如果是小数点,则判断是否已经存在,如果存在,则不拒绝当前输入            if (e.KeyChar == 46 && (((TextBox)sender).SelectionStart == 0 || ((TextBox)sender).Text.IndexOf(".") >= 0))            {                e.Handled = true;            }            //如果是回车键,则进行焦点转移            if (e.KeyChar != 13) return;            SendKeys.Send("{TAB}");            e.Handled = true;        }        /// <summary>        /// 限制只能输入浮点数        /// </summary>        /// <param name="sender"></param>        /// <param name="e"></param>        public void InputDecimal(object sender, KeyPressEventArgs e)        { //限制只能输入浮点数            //如果不是0~9(48~57)、.(46)、Enter(13)、BreakSpace(8),不处理            if ((e.KeyChar < 48 || e.KeyChar > 57) && e.KeyChar != 8 && e.KeyChar != 13 && e.KeyChar != 46 && e.KeyChar != 22 && e.KeyChar != 3 && e.KeyChar != 24 && e.KeyChar != 26)            {                e.Handled = true;            }            //如果是小数点,则判断是否已经存在,如果存在,则不拒绝当前输入            if (e.KeyChar == 46 && (((TextBox)sender).SelectionStart == 0 || ((TextBox)sender).Text.IndexOf(".") >= 0))            {                e.Handled = true;            }            //如果是回车键,则进行焦点转移            if (e.KeyChar != 13) return;            SendKeys.Send("{TAB}");            e.Handled = true;        }        /// <summary>        /// 只能输入数字字母        /// </summary>        /// <param name="sender"></param>        /// <param name="e"></param>        public void InputAllCode(object sender, KeyPressEventArgs e)        {//只能输入数字字母  backspace 8,ctrl+v 22,ctrl+c 3,ctrl+x 24,ctrl+z 26            if (e.KeyChar != 8 && !Char.IsDigit(e.KeyChar) && e.KeyChar != 13 && !((e.KeyChar >= 'a' && e.KeyChar <= 'z') || (e.KeyChar >= 'A' && e.KeyChar <= 'Z')) && e.KeyChar != 22 && e.KeyChar != 3 && e.KeyChar != 24 && e.KeyChar != 26)            {                e.Handled = true;            }            else            {                if (e.KeyChar == 13)                {                    SendKeys.Send("{TAB}");                    e.Handled = true;                }            }        }        /// <summary>        /// 限制只能输入整数        /// </summary>        /// <param name="sender"></param>        /// <param name="e"></param>        public void InputInteger(object sender, KeyPressEventArgs e)        {//限制只能输入整数            if (e.KeyChar != 8 && (e.KeyChar < 48 || e.KeyChar > 57) && e.KeyChar != 13 && e.KeyChar != 22 && e.KeyChar != 3 && e.KeyChar != 24 && e.KeyChar != 26)            {                e.Handled = true;            }            else            {                //如果第一位输入0,则不接收                if (e.KeyChar == 48 && (((TextBox)sender).SelectionStart == 0))                    e.Handled = true;                //如果是回车键,则按tab序进行跳转                if (e.KeyChar == 13)                {                    SendKeys.Send("{TAB}");                    e.Handled = true;                }            }        }        #endregion 输入控制--限制只能输入浮点数、数字字符、整数    }} 
调用
 

        private void txtGoodsCount_KeyPress(object sender, KeyPressEventArgs e)        {            try            {                inputValidate.InputInteger(sender, e);            }            catch (Exception ex)            {                LogHelper.LogException(ex);                MsgBox.Error("系统出错!");            }        }  
 
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表