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 |
---|---|
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