Compartilhar via


XmlEvent.Changing Evento

Definição

Ocorre depois que alterações no documento XML subjacente de um formulário foram feitas, mas antes das alterações serem aceitas.

public:
 abstract event Microsoft::Office::InfoPath::XmlChangingEventHandler ^ Changing;
public abstract event Microsoft.Office.InfoPath.XmlChangingEventHandler Changing;
member this.Changing : Microsoft.Office.InfoPath.XmlChangingEventHandler 
Public MustOverride Custom Event Changing As XmlChangingEventHandler 

Tipo de evento

Exceções

O desenvolvedor tentou associar o evento a um nó na fonte de dados secundária. Esse evento não tem suporte para fontes de dados secundárias.

Exemplos

No exemplo a seguir, quando uma alteração é feita no campo2, o evento Changing é gerado e um FormError objeto para field1 é adicionado ao FormErrorCollection do formulário usando o Add(XPathNavigator, String, String, String) método da classe FormErrorCollection .

Isso associa uma mensagem de erro ao field1. A cadeia de caracteres passada como o message parâmetro do método Add é exibida em uma dica de tela quando o usuário passa o mouse sobre o campo1. Quando o usuário clica com o botão direito do mouse no campo1 e, em seguida, clica na descrição completa do erro, o InfoPath exibe a mensagem de erro completa, incluindo a cadeia de caracteres passada como o messageDetails parâmetro do método Add .

public void field2_Changing(object sender, XmlChangingEventArgs e)
{
   XPathNavigator errNode = 
      this.CreateNavigator().SelectSingleNode("/my:myFields/my:field1", 
      NamespaceManager);
   this.Errors.Add(errNode, "Field2Changing", 
      "The Changing event occurred for Field2.", 
      "Changes were made to Field2, but have not yet been accepted.");
}
Public Sub field2_Changing(ByVal sender As Object, _
   ByVal e As XmlChangingEventArgs)
   Dim errNode As XPathNavigator = Me.CreateNavigator(). _
      SelectSingleNode("/my:myFields/my:field1", NamespaceManager)
   Me.Errors.Add(errNode, "Field2Changing", _
      "The Changing event occurred for Field2.", _
      "Changes were made, but have not yet been accepted.")
End Sub

Comentários

Importante: o evento Alteração não deve ser instanciado pelo desenvolvedor no código de formulário. Quando você adiciona um manipulador de eventos ao modelo de formulário da interface do usuário do modo de design, o Microsoft InfoPath gera código no método InternalStartup do arquivo de código de formulário usando a EventManager classe e o XmlEvent membro da classe para associar eventos no nível do documento aos manipuladores de eventos. Para obter informações sobre como adicionar manipuladores de eventos no modo de design do InfoPath, consulte Como adicionar um manipulador de eventos.

O evento Alteração está vinculado usando o XmlChangingEventHandler delegado.

Esse manipulador de eventos permite que os usuários cancelem uma operação.

Durante o evento Alteração , o documento XML subjacente do formulário é colocado no modo somente leitura. Se a propriedade XmlChangingEventArgs.CancelableArgs.Cancel for definida como true, o InfoPath rejeitará as alterações feitas e uma caixa de mensagem será exibida para o usuário. Se ocorrer um erro no código do evento Alteração , o InfoPath rejeitará as alterações e restaurará os dados em seu estado anterior.

Observação: é melhor evitar alternar exibições durante o evento Alteração ; as alterações ainda não foram aceitas e a alteração para outra exibição pode resultar em um erro.

This type or member can be accessed only from code running in forms opened in Microsoft InfoPath Filler.

Aplica-se a