OnContextChange-hendelsen

Microsoft Office InfoPath

Inntreffer etter at kontekstnoden endres.

Funksjon XDocument::OnContextChange(ByRef pEvent As DocContextChangeEvent)

pEvent    Obligatorisk DocContextChangeEvent. En referanse til DocContextChangeEvent-objektet.

Merknader

Kontekstnoden er XML DOM-noden tilordnet visningen som tilsvarer beholderen (eller elementet) med det gjeldende XML-valget. Hvis det gjeldende valget i visningen for eksempel er i en tekstboks, er kontekstnoden noden som tekstboksen er bundet til. Hvis det gjeldende valget er en gjentatt inndeling, er kontekstnoden noden for det elementet. Hvis to gjentatte inndelinger velges, er kontekstnoden overordnet XML DOM for begge elementer som er tilordnet visningen.

OnContextChange-hendelsen er asynkron. Den aktiveres ikke for hver endring i kontekstnoden, men aktiveres i stedet etter at programmet har stoppet behandlingen av andre hendelser.

Når dokumentet lastes inn, eller når en visning endres, inntreffer OnContextChange-hendelsen etter at OnLoad- og OnSwitchView-hendelsene inntreffer.

Når IsUndoRedo-egenskapen for DocContextChangeEvent-objektet er True, skyldes kontekstendringen at en bruker har utført en angre- eller gjør om-operasjon, og ikke at brukeren har utført en eksplisitt kontekstendring. Operasjoner som utføres i OnContextChange-hendelsesbehandlingen, og som endrer XML DOM, bør unngås som respons på angre- eller gjør om-operasjoner, fordi de kan hindre brukeren i å gjenopprette data til en tidligere tilstand.

Når det gjelder kontroller for bokser for rik tekst, aktiveres ikke OnContextChange-hendelsen for kontekstendringer i XHTML-innholdet, dvs. endringer som gjøres i den rike teksten i kontrollen. Metoden GetContextNodes kan brukes til å fastsette valget i kontroller for bokser for rik tekst.

Obs!  Denne objektmodellen støttes ikke når alternativet Deaktiver funksjoner fra oppdateringspakke under Avansert-kategorien i Alternativer-dialogboksen i InfoPath er valgt, eller når Microsoft Office 2003 Service Pack 1 eller senere ikke er installert. Skjemaer som implementerer dette objektmodellmedlemmet i kode, vil generere en feilmelding hvis de åpnes i InfoPath nå oppdateringspakkefunksjoner er deaktivert eller ikke er tilgjengelige.

Eksempel

I eksempelet nedenfor legges instruksjoner som er spesifikke for ulike kontekstnoder i et skjema, til i en egendefinert oppgaverute:

function XDocument::OnContextChange(eventObj) 
{
    var oContextNode = eventObj.Context;

    var strText = "";
    if( oContextNode.nodeName == "my:root" )
        strText = "";
    else if( oContextNode.nodeName == "my:singleName" )
        strText = "Type your full name.";
    else if( oContextNode.nodeName == "my:webSite" )
        strText = "Type the Web address of your personal web page.";

    var oTaskPane = XDocument.View.Window.TaskPanes.Item(0);
    oTaskPane.HTMLDocument.body.innerText = strText;
}