2011-09-03 2 views
0

J'essaye d'implémenter la fonction annuler/rétablir dans mon application personnalisée qui affiche le code en utilisant ICSharpCode.TextEditor. TextEditor prend entièrement en charge l'annulation et la restauration. Mais malheureusement, le contrôle est mal documenté. Il n'est pas clair comment détecter le changement de l'état d'annulation, donc le programme peut griser et réactiver les boutons Annuler et Rétablir dans la barre d'outils.ICSharpCode.TextEditor annuler/rétablir l'état

Y a-t-il un événement auquel je peux m'abonner? Devrais-je utiliser les propriétés EnableUndo et EnableRedo?

Répondre

3

Vérifiez le IDocument en cours de modification, pas le TextEditor. Assurez-vous que vous modifiez le document à l'aide des méthodes IDocument. Vous pouvez regrouper des actions en utilisant IDocument.UndoStack.StartUndoGroup et IDocument.UndoStack.EndUndoGroup. Pour voir si des annulations sont possibles, vous pouvez vérifier si le IDocument.UndoStack est vide.