是否有可能阻止最终用户从C#应用程序中的RichTextBox
复制文本?也许就像在RichTextBox
上方添加透明面板一样?
答案 0 :(得分:4)
http://www.daniweb.com/software-development/csharp/threads/345506
Re:禁用Richtextbox控件的复制和粘贴控制两个步骤 要遵循以禁用文本框中的复制粘贴功能
1)要停止右键单击复制/粘贴,请禁用默认菜单和 将文本框与没有菜单的空上下文菜单相关联 项目
2)要停止快捷键,您需要覆盖ProcessCmdKey 方法:
C#语法(切换纯文本)
private const Keys CopyKey = Keys.Control | Keys.C;
private const Keys PasteKey = Keys.Control | Keys.V;
protected override bool ProcessCmdKey(ref Message msg, Keys keyData) {
if((keyData == CopyKey) || (keyData == PasteKey)){
return true;
} else {
return base.ProcessCmdKey(ref msg, keyData);
}
}
答案 1 :(得分:2)
您需要子类化丰富的编辑框控件,覆盖WM_COPY消息,并在收到它时不执行任何操作。 (不要委托给DefWindowProc。)
您还必须对WM_CUT执行相同的操作。
还有人可以使用像Spy ++这样的实用程序来获取文本。
答案 2 :(得分:1)
执行此操作的一种方法是访问剪贴板对象,然后您可以操作clipbord的内容。
清除clipbord的方法是:Clipboard.Clear Method
答案 3 :(得分:1)
你可以这样做(我想):
//Stick this in the KeyDown event of your RichtextBox
if (e.Control && e.KeyCode == Keys.C) {
e.SuppressKeyPress = true;
}