从写TextBox

从写TextBox 禁止粘贴
image 
using System;
using System.Windows.Forms;


namespace winTest
{
    public class MyTextBox:System.Windows.Forms.TextBox
    {
        public const int WM_PASTE = 0x0302;//粘貼消息 
        public const int WM_CHAR = 0x0102;

        /// <summary>
        /// 禁止粘贴
        /// </summary>
        /// <param name="oMessage"></param>
        protected override void WndProc(ref Message oMessage)
        {
            if (oMessage.Msg == WM_PASTE)
            {
                IDataObject paste = Clipboard.GetDataObject();
                string num = paste.GetData(typeof(string)).ToString().Trim();
                for (int i = 0; i < num.Length; i++)
                {
                    if (!char.IsNumber(num[i]))
                    {
                        return;
                    }
                }
            }
            else if (oMessage.Msg == WM_CHAR)
            {
                Console.WriteLine(oMessage.WParam);
                if ((int)oMessage.WParam != 8)
                {
                    if ((int)oMessage.WParam < 48 || (int)oMessage.WParam > 57)
                    {
                        return;
                    }
                }

            }
            base.WndProc(ref oMessage);
        }

    }
}
原文地址:https://www.cnblogs.com/cainiaoji/p/1998694.html