다음을 통해 공유


_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 선택 영역이 있는 컨테이너(또는 항목)에 해당하는 보기로 매핑된 XML DOM 노드입니다. 예를 들어 보기에서 현재 선택 영역이 텍스트 상자 안에 있는 경우 컨텍스트 노드는 텍스트 상자가 바인딩되어 있는 노드입니다. 현재 선택 영역이 반복 구역인 경우 컨텍스트 노드는 해당 항목의 노드입니다. 두 개의 반복 구역을 선택하는 경우 컨텍스트 노드는 보기에 매핑된 두 항목 모두의 상위 XML DOM입니다.

OnContextChange 이벤트는 비동기적입니다. 컨텍스트 노드에서 변경되는 모든 내용에 대해 발생하는 것이 아니라 응용 프로그램에서 다른 이벤트의 처리가 중지된 후에 발생합니다.

문서가 로드되거나 보기가 변경되면 OnLoadOnSwitchView 이벤트가 발생한 후에 OnContextChange 이벤트가 발생합니다.

DocContextChangeEventObject 개체의 IsUndoRedo 속성이 true이면 사용자 컨텍스트가 명시적으로 변경된 것이 아니라 사용자의 실행 취소 또는 다시 실행 작업을 통해 컨텍스트가 변경된 것입니다. OnContextChange 이벤트 내에서 실행 취소 또는 다시 실행 작업에 대한 응답으로 XML DOM을 수정하는 작업을 실행하면 데이터를 이전 상태로 되돌리려는 사용자의 의도를 방해할 수 있으므로 이러한 작업은 실행하지 않아야 합니다.

서식 있는 텍스트 상자 컨트롤의 경우, XHTML 내용 안에서 컨텍스트가 변경될 때, 즉 컨트롤의 서식 있는 텍스트에서 선택 영역이 변경될 때는 OnContextChange 이벤트가 발생되지 않습니다. 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 네임스페이스