如何覆盖richtextbox中的复制和粘贴

如何覆盖Richtextbox C#应用程序中的复制/粘贴function。 包括ctrl-c / ctrl-v和右键单击复制/粘贴。

这是WPF richtextBox。

要覆盖命令function:

protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { if (keyData == (Keys.Control | Keys.C)) { //your implementation return true; } else if (keyData == (Keys.Control | Keys.V)) { //your implementation return true; } else { return base.ProcessCmdKey(ref msg, keyData); } } 

Winforms RichTextBox不支持右键单击

– 编辑 –

实现太晚了,这是一个WPF问题。 要在WPF中执行此操作,您需要附加自定义复制和粘贴处理程序:

 DataObject.AddPastingHandler(myRichTextBox, MyPasteCommand); DataObject.AddCopyingHandler(myRichTextBox, MyCopyCommand); private void MyPasteCommand(object sender, DataObjectEventArgs e) { //do stuff } private void MyCopyCommand(object sender, DataObjectEventArgs e) { //do stuff } 

使用复制和粘贴处理程序时切割怎么样? 当您拥有OnCopy的自定义实现并按处理时

 e.Handled = true; e.CancelCommand(); 

在执行剪切时也调用OnCopy – 我找不到找出方法是否被调用来执行复制或剪切的方法。

我用过这个:
//doc.Editor是RichtextBox

  DataObject.AddPastingHandler(doc.Editor, new DataObjectPastingEventHandler(OnPaste)); DataObject.AddCopyingHandler(doc.Editor, new DataObjectCopyingEventHandler(OnCopy)); private void OnPaste(object sender, DataObjectPastingEventArgs e) { } private void OnCopy(object sender, DataObjectCopyingEventArgs e) { }