devilhand 发表于 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("系统出错!");            }      }  
 
页: [1]
查看完整版本: 文本框输入限制