Freigeben über


XmlEvent.Changing-Ereignis

Tritt ein, nachdem Änderungen an einem Formular zugrunde liegenden XML-Dokument vorgenommen wurden, jedoch bevor diese angenommen wurden.

Namespace: Microsoft.Office.InfoPath
Assembly: Microsoft.Office.InfoPath (in microsoft.office.infopath.dll)

Syntax

'Declaration
Public Event Changing As XmlChangingEventHandler
'Usage
Dim instance As XmlEvent
Dim handler As XmlChangingEventHandler

AddHandler instance.Changing, handler
public abstract event XmlChangingEventHandler Changing

Ausnahmen

Ausnahmetyp Bedingung

InvalidOperationException

Es wurde versucht, das Ereignis an einen anderen Speicherort als die InternalStartup-Methode zu binden.

InvalidOperationException

Es wurde versucht, das Ereignis an einen Knoten der sekundären Datenquelle zu binden. Dieses Ereignis wird für sekundäre Datenquellen nicht unterstützt.

Hinweise

Wichtig

Das Changing-Ereignis sollte nicht im Formularcode instanziiert werden. Wenn Sie der Formularvorlage von der Entwurfsmodus-Benutzeroberfläche aus einen Ereignishandler hinzufügen, wird in Microsoft Office InfoPath 2007 mithilfe der EventManager-Klasse und mithilfe des Members der XmlEvent-Klasse in der InternalStartup-Methode der Formularcodedatei Code generiert, um Ereignisse auf Dokumentenebene an die zugehörigen Ereignishandler zu binden. Weitere Informationen zum Hinzufügen von Ereignishandlern im InfoPath-Entwurfsmodus finden Sie unter Vorgehensweise: Hinzufügen eines Ereignishandlers.

Die Bindung des Changing-Ereignisses erfolgt mithilfe des XmlChangingEventHandler-Delegaten.

Dieser Ereignishandler lässt es zu, dass Benutzer einen Vorgang abbrechen.

Während des Changing-Ereignisses wird das dem Formular zugrunde liegende XML-Dokument in den Schreibschutzmodus versetzt. Wird die XmlChangingEventArgs.CancelableArgs.Cancel-Eigenschaft auf true festgelegt, werden die vorgenommenen Änderungen von InfoPath abgelehnt, und dem Benutzer wird ein Meldungsfeld angezeigt. Wenn ein Fehler im Code für das Changing-Ereignis auftritt, werden die Änderungen von InfoPath abgelehnt und die Daten im vorherigen Zustand wieder hergestellt.

Hinweis

Es empfiehlt sich, die Ansichten während des Changing-Ereignisses nicht zu wechseln. Die Änderungen wurden noch nicht angenommen, und der Wechsel zu einer anderen Ansicht kann einen Fehler auslösen.

Auf diesen Typ oder diesen Member kann nur über Code zugegriffen werden, der in Formularen ausgeführt wird, die mit Microsoft Office InfoPath 2007 geöffnet wurden.

Beispiel

Im folgenden Beispiel wird bei Änderung von field2 das Changing-Ereignis ausgelöst und mithilfe der Add-Methode der FormErrorCollection-Klasse ein FormError-Objekt für field1 im Formular für FormErrorCollection hinzugefügt.

Auf diese Weise erfolgt die Zuordnung einer Fehlermeldung zu field1. Die als message-Parameter der Add-Methode übergebene Zeichenfolge wird in einer QuickInfo angezeigt, wenn der Benutzer die Maus über field1 bewegt. Wenn der Benutzer mit der rechten Maustaste auf field1 und dann auf Vollständige Fehlerbeschreibung klickt, zeigt InfoPath die vollständige Fehlermeldung an, einschließlich der als messageDetails-Parameter der Add-Methode übergebenen Zeichenfolge.

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

Siehe auch

Referenz

XmlEvent-Klasse
XmlEvent-Member
Microsoft.Office.InfoPath-Namespace