Поделиться через


Событие XmlEvent.Changing

Создается после изменений в связанном XML-документе формы, но до принятия этих изменений.

Пространство имен: Microsoft.Office.InfoPath
Сборка: Microsoft.Office.InfoPath (в microsoft.office.infopath.dll)

Синтаксис

'Декларация
Public Event Changing As XmlChangingEventHandler
'Применение
Dim instance As XmlEvent
Dim handler As XmlChangingEventHandler

AddHandler instance.Changing, handler
public abstract event XmlChangingEventHandler Changing

Исключения

Тип исключения Условие

InvalidOperationException

Попытка разработчика привязать событие в другом местоположении, чем метод InternalStartup.

InvalidOperationException

Попытка разработчика привязать событие к узлу в дополнительном источнике данных. Это событие не поддерживается для дополнительного источника данных.

Заметки

ЗаметкаВнимание!

Создание разработчиком экземпляра события Changing в коде формы не предполагается. При добавлении обработчика события к шаблону формы из пользовательского интерфейса в режиме конструктора Microsoft Office InfoPath 2007 генерирует код в методе InternalStartup файла кода формы с помощью класса EventManager и члена класса XmlEvent для привязки событий уровня документа к их обработчикам. Сведения о порядке добавления обработчиков событий в режиме конструктора InfoPath см. в разделе Практическое руководство. Добавление обработчика событий.

Событие Changing привязано с помощью делегата XmlChangingEventHandler.

Этот обработчик события позволяет пользователям отменить операцию.

Во время события Changing связанный XML-документ формы переводится в режим только для чтения. Если для свойства XmlChangingEventArgs.CancelableArgs.Cancel установлено значение true, InfoPath отклоняет внесенные изменения и для пользователя отображается окно сообщения. Если возникает ошибка в коде для события Changing, InfoPath отклоняет изменения и возвращает данные к предыдущему состоянию.

ЗаметкаЗаметка

Во время события Changing рекомендуется избегать переключения представлений; изменения еще не были приняты, и переключение на другое представление может вызвать ошибку.

Доступ к этому типу или члену имеется только из программы, работающей в формах, открытых в Microsoft Office InfoPath 2007.

Пример

В следующем примере при изменении значения field2 создается событие Changing и объект FormError для field1 добавляется к коллекции FormErrorCollection формы с помощью метода Add класса FormErrorCollection.

Это связывает сообщение об ошибке со значением field1. Строка, переданная как параметр message метода Add, отображается в окне подсказки, когда пользователь наводит указатель мыши на значение field1. Когда пользователь щелкает правой кнопкой значение field1 и затем выбирает , InfoPath отображает полное сообщение об ошибке, включая строку, переданную как параметр messageDetails метода 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

См. также

Ссылка

Класс XmlEvent
Члены XmlEvent
Пространство имен Microsoft.Office.InfoPath