UndoContext, interface

Mise à jour : novembre 2007

Représente, sous la forme d'une transaction unique, toutes les opérations effectuées dans les documents ouverts dans Visual Studio. Si la méthode SetAborted de l'objet est appelée, toutes les modifications apportées depuis son ouverture sont ignorées.

Espace de noms :  EnvDTE
Assembly :  EnvDTE (dans EnvDTE.dll)

Syntaxe

<GuidAttribute("D8DEC44D-CAF2-4B39-A539-B91AE921BA92")> _
Public Interface UndoContext

Dim instance As UndoContext
[GuidAttribute("D8DEC44D-CAF2-4B39-A539-B91AE921BA92")]
public interface UndoContext
[GuidAttribute(L"D8DEC44D-CAF2-4B39-A539-B91AE921BA92")]
public interface class UndoContext
public interface UndoContext

Notes

L'objet UndoContext est retourné par la propriété UndoContext de l'objet _DTE. Visual Studio ne propose qu'un seul service d'annulation global, qui est soit ouvert, soit fermé. Une fois que l'objet UndoContext est ouvert, toutes les mises à jour effectuées dans les documents Visual Studio peuvent être annulées en une seule opération d'annulation, via la méthode SetAborted, jusqu'à la fermeture de l'objet. Si la méthode SetAborted est appelée, toutes les modifications apportées depuis l'ouverture de l'objet sont ignorées.

Pour utiliser l'objet UndoContext, ouvrez-le, procédez aux modifications voulues dans les documents, puis fermez l'objet pour valider les modifications.

Pour ignorer les modifications, appelez la méthode SetAborted avant de fermer l'objet UndoContext. Une fois l'objet UndoContext fermé, il n'est plus possible d'annuler les modifications.

Remarque :

Avant d'utiliser l'objet UndoContext, vérifiez d'abord s'il n'a pas déjà été ouvert lors d'une opération précédente. S'il est déjà ouvert, toutes les modifications apportées aux documents concernés seront annulées, ainsi que les modifications effectuées depuis la première ouverture de l'objet. Si l'objet UndoContext est déjà ouvert lors de la vérification, ne le fermez pas, car l'appelant initial en a encore besoin pour une opération d'annulation. Par conséquent, vous ne devez pas appeler SetAborted ni fermer l'objet UndoContext, sauf si vous êtes à l'origine de son ouverture. Fermez-le après avoir procédé aux modifications dans les documents.

Exemples

Sub UndoContextExample()
   ' Before running, select text in an open document.
   Dim txtSel As TextSelection
   Dim strTS As String, boolWasOpen As Boolean
   txtSel = DTE.ActiveDocument.Selection
   strTS = txtSel.Text

   ' Check to see if UndoContext object is already open.
   If DTE.UndoContext.IsOpen = True Then
      boolWasOpen = True
   Else
      ' Open the UndoContext object to track changes.
      DTE.UndoContext.Open("RemoveNewLines", False)
   End If

   ' Perform search for newline characters and remove them.
   If strTS <> "" Then
      txtSel.Delete()
      strTS = Replace(strTS, vbNewLine, "", Compare:=vbTextCompare)
      txtSel.Insert(strTS)
   End If

   ' If UndoContext was already open, do not close it.
   If boolWasOpen = False Then
      ' Close the UndoContext object to commit the changes.
      DTE.UndoContext.Close()
   End If
End Sub

Voir aussi

Référence

Membres UndoContext

EnvDTE, espace de noms