在文本框中不能使用粘贴

10 篇文章 0 订阅

 

设置剪贴板的字符无法向TextBox粘贴的方法。

设置「Ctrl + V」和文本菜单无效的方法

设置键盘的「Ctrl + V」无效方法,在「Windows Forms FAQ - 27.2 How do I disable pasting into a TextBox (via Ctrl + V and the context menu)?」有详细的介绍。设置TextBox的文本菜单不表示的方法,这里有介绍。将下面的方法一起使用作成类,就可以代替TextBox的使用方法了

[C#]

//using System.Windows.Forms; //上面一行写在代码的最上面 /// <summary> ///使鼠标和键盘的粘贴无效的TextBox /// </summary> public class MyTextBox : TextBox { const Keys pasteKeys = Keys.V | Keys.Control; public MyTextBox() : base() { //设置文本菜单不表示 this.ContextMenu = new ContextMenu(); } protected override bool ProcessCmdKey( ref Message msg, Keys keyData) { //设置Ctrl+V无效 if ((keyData | pasteKeys) == pasteKeys) return true; else return base.ProcessCmdKey(ref msg, keyData); } }

 

无视WM_PASTE消息的方法

另外,下面介绍的代码就是设置WM_PASTE消息无视的方法。

[C#]

//using System.Windows.Forms; //上面一行写在代码的最上面 /// <summary> ///使鼠标和键盘的粘贴无效的TextBox /// </summary> public class MyTextBox : TextBox { const int WM_PASTE = 0x302; protected override void WndProc( ref Message m) { if (m.Msg == WM_PASTE) return; base.WndProc( ref m); } }

.NET Framework 2.0以后版本,使用ShortcutsEnabled属性的方法

从.NET Framework 2.0版本开始,TextBox的类里追回了ShortcutsEnabled属性。当属性设置为false时,在TextBox中使用的快捷键都无法使用。而且,文本菜单也无法表示。所以,字符串粘贴也无法使用。

但是,所有的快捷方式也都无效,复制等操作也无法使用。


 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值