Winform TextBox (文本框) 控件只能输入整数, 整型数字, 且第一位不能是 0

Winform TextBox (文本框) 控件只能输入整数, 整型数字, 且第一位不能是 0
using System;
using System.Windows.Forms;

namespace DemoWinForm
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
    }

    /// <summary>
    /// 文本框 - 只能输入整型且第一位不能是0
    /// 禁止粘贴
    /// </summary>
    public class TextBoxExInt : TextBox
    {
        /// <summary>
        /// 构造函数
        /// </summary>
        public TextBoxExInt()
        {
        }

        #region 禁止粘贴
        /// <summary>
        /// 重写基类的WndProc方法
        /// </summary>
        /// <param name="m"></param>
        protected override void WndProc(ref Message m)
        {
            if (m.Msg == 0x0302)            // 0x0302是粘贴消息
            {
                m.Result = IntPtr.Zero;     // 拦截此消息
                return;
            }
            base.WndProc(ref m);            // 若此消息不是粘贴消息,则交给其基类去处理
        }
        #endregion

        #region 重写方法
        /// <summary>
        /// 重写方法
        /// 只能输入整型
        /// </summary>
        /// <param name="e"></param>
        protected override void OnKeyPress(KeyPressEventArgs e)
        {
            base.OnKeyPress(e);
            if (e.KeyChar != '\b')// 允许输入退格键
            {
                // 最多8位数金额
                if (this.Text.Length == 8) { e.Handled = true; }

                // 整型第一个不能输入0
                if (this.TextLength == 0)
                {
                    if (e.KeyChar == '0') { e.Handled = true; ; }
                }

                // 只允许输入0-9数字
                if ((e.KeyChar < '0') || (e.KeyChar > '9'))
                {
                    e.Handled = true;
                }
            }
        }
        #endregion
    }
}

拖拽“TextBoxExInt”的自定义控件到窗体


作者最新文章
Winform TextBox (文本框) 密码输入框, 输入内容显示*号 (星号)
Winform 启动前弹出登录界面, 登录成功之后再显示主界面
C# 字符串string和字符数组char[]的相互转换
C# 字符串倒序输出, 实现字符串倒序的方法
Winform 如何从 TextBox(文本框) 控件读取每一行数据到数组