7
votes

Comment remplacer la copie et la coller dans RichTextBox

Comment puis-je remplacer les fonctions de copie / pâte dans une application RichTextbox C #. Y compris CTRL-C / CTRL-V et clic droit Copier / Coller.

C'est WPF RichTextBox.


2 commentaires

Pour les formulaires Windows: Stackoverflow.com/questions/5618162/... pour WPF voir ici: Stackoverflow.com/Questtions/3061475/...


@Davide, le lien WPF ajoute un gestionnaire, mais cela ne le remplace pas.


3 Réponses :


18
votes

Pour remplacer les fonctions de commande:

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
}


4 commentaires

Savez-vous comment faire cela dans WPF?


@Ediwnle WPF des choses que vous avez, ajoute un gestionnaire mais ne remplace pas les principales pâtes, elles sont toujours appelées


@ Raym0nd: Vous pouvez ajouter 'E.CancelCommand ();' Pour empêcher la copie / colle par défaut ...


@EdWindekoning pour les formulaires Windows, cette approche pourrait fonctionner pour CTRL + V, mais pas Shift + Insérer, qui est également une combinaison de clé de pâte standard. Bien sûr, en utilisant votre exemple, il serait plus facile d'étendre la solution pour l'appuyer.



2
votes

J'ai utilisé ceci:
//doc.editor est la RichTextbox xxx


0 commentaires

4
votes

Qu'en est-il de la coupe lors de la copie et de coller des gestionnaires? Lorsque vous avez la mise en oeuvre personnalisée de OnCopy et que vous le gérez par

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


1 commentaires

Moi aussi, je ne sais pas si c'est copier ou couper