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


Событие _XDocumentEventSink2_Event.OnContextChange

Происходит после изменения узла контекста.

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

Синтаксис

'Декларация
Event OnContextChange As _XDocumentEventSink2_OnContextChangeEventHandler
'Применение
Dim instance As _XDocumentEventSink2_Event
Dim handler As _XDocumentEventSink2_OnContextChangeEventHandler

AddHandler instance.OnContextChange, handler
event _XDocumentEventSink2_OnContextChangeEventHandler OnContextChange

Заметки

Узел контекста - это узел XML DOM, сопоставленный с представлением, которое связано с контейнером (или элементом) текущего выделения XML. Например, если текущее выделение в представлении - это текстовое поле, узел контекста - это узел, с которым связано текстовое поле. Если текущее выделение - это повторяющийся раздел, узел контекста - это узел для этого элемента. Если выделены два повторяющихся раздела, узел контекста - это предок XML DOM для обоих узлов, сопоставленных с представлением.

Событие OnContextChange является асинхронным. Оно не происходит при каждом изменении узла контекста; напротив, оно происходит, когда приложение заканчивает обработку остальных событий.

При загрузке документа или при смене представления событие OnContextChange происходит после событий OnLoad и OnSwitchView.

Когда свойство IsUndoRedo объекта DocContextChangeEventObject равно true, изменение контекста было вызвано пользователем с помощью операций отмены или повтора действия, а не явным изменением контекста. Рекомендуется избегать операций, выполненных в событии OnContextChange и вызвавших изменение XML DOM, в ответ на операции отмены или повтора действия, поскольку они могут противоречить ожиданию пользователя вернуть данные в прежнее состояние.

Для элементов управления поля форматированного текста событие OnContextChange не возникает при смене контекста в содержимом XHTML, т.е. при изменении выделения форматированного текста в элементе управления. Можно использовать метод GetContextNodes для определения выделения внутри элементов управления поля форматированного текста.

Пример

public void OnContextChange(DocContextChangeEvent e)
{
if (e.Type == "ContextNode")
{
IXMLNode expNode=XDocument.DOM.selectSingleNode("//my:field4");
// set field4 with the name of the current context.
expNode.text=e.Context.nodeName;
}
}

См. также

Ссылка

Интерфейс _XDocumentEventSink2_Event
Члены _XDocumentEventSink2_Event
Пространство имен Microsoft.Office.Interop.InfoPath.SemiTrust