198366809 发表于 2021-8-14 15:26:28

Winform 只能输入整数的TextBox (文本框) 控件


Winform 只能输入整数的TextBox (文本框) 控件using System;
using System.Windows.Forms;

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

    /// <summary>
    /// 文本框 - 只能输入整数
    /// 禁止粘贴
    /// </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-9数字
                if ((e.KeyChar < '0') || (e.KeyChar > '9'))
                {
                  e.Handled = true;
                }
            }
      }
      #endregion
    }
}



JasonCao 发表于 2021-8-14 15:26:28

无回帖,不论坛,这才是人道。

312788909 发表于 2021-8-14 16:10:12

我顶,我顶,我顶顶顶

新的奋_k84zv 发表于 2025-11-12 09:59:14

原来还有这种操作,长见识了!

℡往后余生 发表于 2025-11-13 23:55:31

我先占个楼,等下再慢慢看~

yf7921824 发表于 2025-11-14 00:03:49

理性围观,感觉大家说的都有道理~

忆侗 发表于 2025-11-14 00:37:24

同款经历!简直是世另我

幽桙 发表于 2025-11-14 01:24:16

水个经验,支持楼主,加油呀

摇钱树 发表于 2025-11-14 01:47:49

水个经验,楼主加油,支持你~

ᶫᵒᵛᵉᵧₒᵤ. 发表于 2025-11-14 03:10:38

内容太顶了!疯狂点赞,已默默收藏~
页: [1] 2 3
查看完整版本: Winform 只能输入整数的TextBox (文本框) 控件