Table of contents
TOC
Recolher sumário
Expandir sumário

Método Application.EndUndoScope (Visio)Application.EndUndoScope Method (Visio)

office 365 dev account|Última Atualização: 22/03/2018
|
2 Colaboradores

Finaliza ou cancela uma transação que tem um escopo exclusivo.Ends or cancels a transaction that has a unique scope.

SintaxeSyntax

expressão . EndUndoScope ( nScopeID , bCommit )expression . EndUndoScope( nScopeID , bCommit )

expressão Uma variável que representa um objeto Application .expression A variable that represents an Application object.

ParâmetrosParameters

NomeNameObrigatório/opcionalRequired/OptionalTipo de dadosData TypeDescriçãoDescription
nScopeIDnScopeIDObrigatórioRequiredLongLongA identificação do escopo a ser fechado.The ID of the scope to close.
bCommitbCommitObrigatórioRequiredBooleanBooleanSinalizador que indica que as alterações feitas durante o escopo devem ser aceitas ( True ) ou canceladas ( False ).flag indicating that the changes made during the scope should be accepted ( True ) or canceled ( False ).

Valor de retornoReturn Value

NadaNothing

ComentáriosRemarks

Se você precisa saber se você recebe de eventos são o resultado de uma operação específica que você tiver iniciado, use os métodos BeginUndoScope e EndUndoScope para quebrar a operação. Em seus manipuladores de eventos, use a propriedade IsInScope para testar se a identificação do escopo retornada pelo método BeginUndoScope faz parte do contexto atual. Verifique se que você desmarcar a identificação do escopo armazenados da propriedade BeginUndoScope quando você recebe o evento ExitScope com ID.If you need to know whether events you receive are the result of a particular operation that you initiated, use the BeginUndoScope and EndUndoScope methods to wrap your operation. In your event handlers, use the IsInScope property to test whether the scope ID returned by the BeginUndoScope method is part of the current context. Make sure you clear the scope ID you stored from the BeginUndoScope property when you receive the ExitScope event with that ID.

Você deve equilibrar as chamadas para o método BeginUndoScope com chamadas para o método EndUndoScope . Se você chamar o método BeginUndoScope , você deve chamar o método EndUndoScope assim que terminar com as ações que constituem seu escopo. Além disso, enquanto as ações a vários documentos devem ser robustas dentro de um único escopo, fechar um documento pode ter o efeito de lado, de desmarcar as informações de recuperação para o escopo aberto no momento, bem como para desmarcar o comando Desfazer e refazer pilhas. Se isso ocorrer, passando bCommit = False para EndUndoScope não restaura as informações de desfazer.You must balance calls to the BeginUndoScope method with calls to the EndUndoScope method. If you call the BeginUndoScope method, you should call the EndUndoScope method as soon as you are done with the actions that constitute your scope. Also, while actions to multiple documents should be robust within a single scope, closing a document may have the side effect of clearing the undo information for the currently open scope as well as clearing the undo and redo stacks. If that happens, passing bCommit = False to EndUndoScope does not restore the undo information.

Você também pode usar o BeginUndoScope e EndUndoScope métodos para adicionar uma ação definida por um complemento para o Microsoft Visio desfazer stream. Isso é útil quando você está operando de cenários sem janela restrita, onde o agente inicial é parte de interface do usuário de um add-on ou de uma ação programática sem janela restrita.You can also use the BeginUndoScope and EndUndoScope methods to add an action defined by an add-on to the Microsoft Visio undo stream. This is useful when you are operating from modeless scenarios where the initiating agent is part of an add-on's user interface or a modeless programmatic action.

Observação A maioria das ações do Visio já estão contidas em escopos de desfazer internos, então os complementos executados no aplicativo não precisam chamar esse método.Note Most Visio actions are already wrapped in internal undo scopes, so add-ons running within the application do not need to call this method.

Se sua solução do Visual Studio inclui a referência de Microsoft.Office.Interop.Visio , esse método mapeia para os seguintes tipos:If your Visual Studio solution includes the Microsoft.Office.Interop.Visio reference, this method maps to the following types:

  • Microsoft.Office.Interop.Visio.IVApplication.EndUndoScope (int, bool)Microsoft.Office.Interop.Visio.IVApplication.EndUndoScope(int, bool)

ExemploExample

Este exemplo mostra como usar o método EndUndoScope para finalizar uma transação que tem uma identificação de escopo exclusiva para uma instância do Visio.This example shows how to use the EndUndoScope method to end a transaction that has a unique scope ID for an instance of Visio.


Private WithEvents vsoApplication As Visio.Application  
Private lngScopeID As Long 

Public Sub EndUndoScope_Example()  

    Dim vsoShape As Visio.Shape  

    'Set the module-level application variable to  
    'trap Application-level events.  
    Set vsoApplication = Visio.Application  

    'Begin a scope and set the module-level variable.  
    lngScopeID = vsoApplication.BeginUndoScope("Draw Shapes")  

    'Draw three shapes.  
    Set vsoShape = ActivePage.DrawRectangle(1, 2, 2, 1) 

    ActivePage.DrawOval 3, 4, 4, 3  
    ActivePage.DrawLine 4, 5, 5, 4  

    'Change a cell to trigger a CellChanged event.  
    vsoShape.Cells("Width").Formula = 5  

    'End and commit this scope.  
    vsoApplication.EndUndoScope lngScopeID, True  

End Sub    

Private Sub vsoApplication_CellChanged(ByVal Cell As IVCell)  

    'Check to see if this cell change is the result of something  
    'happening within the scope.  
    If vsoApplication.IsInScope(lngScopeID) Then  
        Debug.Print Cell.Name &; " changed in scope "; lngScopeID  
    End If 

End Sub   

Private Sub vsoApplication_EnterScope(ByVal app As IVApplication, _  
    ByVal nScopeID As Long, _  
    ByVal bstrDescription As 
     String)  

    If vsoApplication.CurrentScope = lngScopeID Then  
        Debug.Print "Entering my scope " &; nScopeID  
    Else  
        Debug.Print "Enter Scope " &; bstrDescription &; "(" &; nScopeID &; ")"  
    End If 

End Sub   

Private Sub vsoApplication_ExitScope(ByVal app As IVApplication, _  
    ByVal nScopeID As Long, _  
    ByVal bstrDescription As String, _  
    ByVal bErrOrCancelled As Boolean)  

    If vsoApplication.CurrentScope = lngScopeID Then  
        Debug.Print "Exiting my scope " &; nScopeID  
    Else  
        Debug.Print "Exit Scope " &; bstrDescription &; "(" &; nScopeID &; ")"  
    End If  

End Sub
© 2018 Microsoft