如何防止用户在C#应用程序中从RichTextBox复制文本?

时间:2011-12-29 08:58:34

标签: c# copy richtextbox

是否有可能阻止最终用户从C#应用程序中的RichTextBox复制文本?也许就像在RichTextBox上方添加透明面板一样?

4 个答案:

答案 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;
    }