重写C#的TextBox控件达到无法粘贴,无法输入特定字符功能

本文介绍了如何通过重写C#的TextBox控件,实现禁止用户复制、粘贴以及输入特定字符的功能。通过创建自定义类库,继承TextBox并重写WndProc消息处理,可以拦截WM_CHAR和WM_PASTE消息,从而控制输入和粘贴行为。在Winform应用中引用这个自定义控件,即可在实际项目中使用。
摘要由CSDN通过智能技术生成

QQ的登陆界面的那两个框,大家应该很熟悉了,QQ的密码框,无法复制和粘贴,其实实现起来也很简单。

这里就要用到控件重写。微笑打开Visual Studio 新建 类库  然后继承TextBox,重写消息循环WndProc,这里捕获WM_CHAR就能实现特定的字符能不能输入,捕获WM_PASTE就能实现粘贴时候的一些操作。

    public class Class1:TextBox
    {
        protected override void WndProc(ref Message m)
        {
            int charcode = (int)m.WParam;
            switch (m.Msg)
            {
                case 0x0102://WM_CHAR
                    if(charcode == 97)
                    return;
                    break;
                case 0x0302://WM_PASTE
                    IDataObject obj = Clipboard.GetDataObject();
                    if (obj.GetDataPresent(DataFormats.Text))
                    {
                        String clip = (String)obj.GetData(DataFormats.Text);
                    }
               
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值