Procedura: Utilizzare le finestre di un modulo tramite il modello a oggetti di InfoPath 2003
Quando si utilizza un modulo di InfoPath a livello di programmazione, è possibile scrivere codice per accedere alle finestre del modulo e quindi personalizzare alcuni degli elementi contenuti in tali finestre. Il modello ai oggetti compatibile con InfoPath 2003 supporta l'accesso alle finestre di un modulo tramite l'utilizzo dell'interfaccia WindowObject insieme all'interfaccia WindowsCollection.
In InfoPath sono disponibili due tipi di finestre:
La finestra di modifica utilizzata quando un utente compila un modulo
La finestra di progettazione utilizzata quando un utente progetta un modello di modulo
Le funzionalità più utili per la scrittura di codice in un modello di modulo sono disponibili nella finestra di modifica, in quanto è possibile utilizzare un'istanza dell'oggetto WindowObject che fa riferimento a tale finestra per accedere a un'ampia gamma di proprietà e metodi che consentono di personalizzare la modifica del modulo.
Informazioni generali sull'interfaccia WindowsCollection
L'interfaccia WindowsCollection include le proprietà seguenti, che possono essere utilizzate dagli sviluppatori dei modelli di modulo per gestire le istanze degli oggetti WindowObject contenuti in tale interfaccia.
Nome | Descrizione |
---|---|
Proprietà Count |
Restituisce il numero di oggetti Window contenuti nell'insieme. |
Proprietà Item |
Restituisce un riferimento all'oggetto Window specificato. ![]()
Per accedere agli insiemi in Visual C#, anziché eseguire la chiamata a Item viene utilizzato un indicizzatore, ad esempio
thisApplication.Windows[0].Caption .
|
Informazioni generali sull'oggetto Window
L'interfaccia WindowObject include i metodi e le proprietà seguenti, che possono essere utilizzati dagli sviluppatori di moduli per interagire con una finestra di InfoPath. Il supporto per tali metodi e proprietà varia a seconda del tipo di finestra (XdWindowType) utilizzata. Alcuni metodi e proprietà funzionano solo con finestre di modifica (XdWindowType.xdEditorWindow). Gli altri funzionano sia con finestre di modifica che con finestre di progettazione (XdWindowType.xdDesignerWindow). Come per tutti i membri del modello a oggetti di InfoPath chiamati da un modello di modulo, inoltre, il supporto per i metodi e le proprietà può variare in base al livello di protezione e alle modalità di distribuzione del modulo.
Nome | Descrizione | Supporto tipo di finestra |
---|---|---|
Metodo Activate |
Imposta la finestra come finestra corrente attiva. |
Entrambi i tipi xdDesignWindow e xdEditorWindow |
Proprietà Active |
Restituisce un valore Boolean che indica se la finestra è la finestra corrente attiva. |
Entrambi i tipi xdDesignWindow e xdEditorWindow |
Proprietà Caption |
Proprietà di lettura/scrittura che restituisce o imposta il testo della didascalia per la finestra rappresentata dall'oggetto Window. |
Solo il tipo xdEditorWindow |
Metodo Close |
Chiude una finestra. |
Solo il tipo xdEditorWindow |
Proprietà CommandBars |
Restituisce un riferimento all'oggetto CommandBars di Microsoft Office. |
Entrambi i tipi xdDesignWindow e xdEditorWindow |
Proprietà Height |
Proprietà di lettura/scrittura di tipo long integer che specifica l'altezza della finestra rappresentata dall'oggetto Window, misurata in punti. |
Entrambi i tipi xdDesignWindow e xdEditorWindow |
Proprietà Left |
Proprietà di lettura/scrittura di tipo long integer che specifica la posizione orizzontale della finestra rappresentata dall'oggetto Window, misurata in punti. |
Entrambi i tipi xdDesignWindow e xdEditorWindow |
Proprietà MailEnvelope |
Restituisce un riferimento all'oggetto MailEnvelopeObject. |
Solo il tipo xdEditorWindow |
Proprietà TaskPanes |
Restituisce un riferimento all'insieme TaskPanesCollection. |
Entrambi i tipi xdDesignWindow e xdEditorWindow |
Proprietà Top |
Proprietà di lettura/scrittura di tipo long integer che specifica la posizione verticale della finestra rappresentata dall'oggetto Window, misurata in punti. |
Entrambi i tipi xdDesignWindow e xdEditorWindow |
Proprietà WindowType |
Restituisce un numero che indica il tipo di finestra, in base all'enumerazione XdWindowType. |
Entrambi i tipi xdDesignWindow e xdEditorWindow |
Proprietà Width |
Proprietà di lettura/scrittura di tipo long integer che specifica la larghezza della finestra rappresentata dall'oggetto Window, misurata in punti. |
Entrambi i tipi xdDesignWindow e xdEditorWindow |
Proprietà WindowState |
Proprietà di lettura/scrittura di tipo XdWindowState che restituisce o imposta lo stato della finestra rappresentata dall'oggetto Window. |
Entrambi i tipi xdDesignWindow e xdEditorWindow |
Proprietà XDocument |
Restituisce un riferimento all'oggetto _XDocument associato alla finestra. |
Solo il tipo xdEditorWindow |
Utilizzo delle interfacce WindowsCollection e Window
È possibile accedere all'interfaccia WindowsCollection tramite la proprietà Windows dell'interfaccia Application. Quando si utilizza l'interfaccia WindowsCollection per accedere alle finestre di un modulo, si utilizza un indicizzatore (per Visual C#) o si passa un valore long integer alla proprietà Item (per Visual Basic) per restituire un riferimento a un'istanza dell'interfaccia WindowObject. Ad esempio, il codice seguente imposta un riferimento al primo oggetto WindowObject dell'insieme WindowsCollection.
WindowObject objWindow = thisApplication.Windows[0];
Dim objWindow As WindowObject = thisApplication.Windows(0)
È tuttavia possibile accedere direttamente alla finestra aperta tramite la proprietà ActiveWindow dell'interfaccia Application senza utilizzare WindowsCollection, come illustrato nel codice seguente:
WindowObject objWindow = thisApplication.ActiveWindow;
Dim objWindow As WindowObject = thisApplication.ActiveWindow
![]() |
---|
Quando si esegue il debug di un progetto con codice gestito di InfoPath, la proprietà ActiveWindow restituirà sempre null perché la finestra di debug è attiva. |
È inoltre possibile accedere a un oggetto WindowObject utilizzando la proprietà Window dell'interfaccia View, associata al documento XML sottostante del modulo. Per accedere all'oggetto View viene utilizzata la proprietà View dell'interfaccia XDocument. Nell'esempio seguente viene impostato un riferimento all'oggetto WindowObject che è associato alla visualizzazione del documento XML sottostante di un modulo:
WindowObject objWindow = thisXDocument.View.Window;
Dim objWindow As WindowObject = thisXDocument.View.Window
![]() |
---|
Alcuni metodi e proprietà dell'oggetto Window sono disponibili solo per la finestra di modifica. Se vengono utilizzati con la finestra di progettazione, restituiranno un errore. Nella tabella riportata più indietro in questo argomento sono elencati i metodi e le proprietà supportati per ogni tipo di finestra. È possibile utilizzare la proprietà WindowType nel codice per determinare il tipo di finestra utilizzata. |