Han*_*ant 8

捕获击键是不够的,用户也可以使用上下文菜单进行粘贴.这需要捕获较低级别的操作,您必须捕获WM_PASTE消息并阻止它到达本机Windows控件.在项目中添加一个新类并粘贴下面显示的代码.编译.将新控件从工具箱顶部拖放到表单上.它确实有一个缺陷,在上下文菜单中没有禁用粘贴命令.没有简单的解决方案,你必须用自己的替换它.

using System;
using System.Windows.Forms;

class NopasteTextBox : TextBox {
    protected override void WndProc(ref Message m) {
        // Trap WM_PASTE:
        if (m.Msg == 0x302) return;
        base.WndProc(ref m);
    }
}
Run Code Online (Sandbox Code Playgroud)