Share via


UndoContext (Interfaz)

Actualización: noviembre 2007

Representa, como una única transacción, todas las operaciones realizadas en todos los documentos abiertos y utilizados en Visual Studio. Si se llama al método SetAborted, se descartan todos los cambios realizados desde que se abrió el objeto.

Espacio de nombres:  EnvDTE
Ensamblado:  EnvDTE (en EnvDTE.dll)

Sintaxis

<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

Comentarios

La propiedad UndoContext del objeto UndoContext devuelve el objeto _DTE. Sólo hay un servicio de deshacer de carácter global en Visual Studio, que está abierto o cerrado. Una vez abierto el objeto UndoContext, todas las actualizaciones realizadas en los documentos en Visual Studio se pueden invertir (deshacer) mediante una única acción de deshacer, el método SetAborted, hasta que el objeto se cierra. Si se invoca el método SetAborted, se descartan todos los cambios realizados desde que se abrió el objeto.

Para utilizar el objeto UndoContext, ábralo, realice cambios en los documentos y cierre el objeto para concluir con los cambios.

Para descartar los cambios, llame al método SetAborted antes de cerrar el objeto UndoContext. Una vez cerrado el objeto UndoContext, los cambios ya no podrán deshacerse.

Nota:

Antes de utilizar el objeto UndoContext, compruebe si ya está abierto de una operación anterior. Si ya está abierto, se desharán los cambios de todos los documentos utilizados, así como todos los cambios realizados desde que se abrió por primera vez el objeto. Si comprueba que el objeto UndoContext ya está abierto, no lo cierre, ya que el autor de la llamada anterior aún lo necesitará para una operación de deshacer. Por tanto, no debe llamar a SetAborted y, a continuación, cerrar el objeto UndoContext a menos que lo abriera originalmente. Ciérrelo después de haber terminado de modificar texto en documentos.

Ejemplos

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

Vea también

Referencia

UndoContext (Miembros)

EnvDTE (Espacio de nombres)