Compartir a través de


Trabajar con Windows de Formulario mediante el modelo de objetos de InfoPath 2003

Cuando se trabaja con un formulario de InfoPath mediante programación, es posible escribir código para tener acceso a las ventanas del formulario y, a continuación, personalizar algunos de los elementos que contienen. El modelo de objetos compatible con InfoPath 2003 admite el acceso a las ventanas de los formularios mediante la interfaz WindowObject en asociación con la interfaz WindowsCollection .

Hay dos tipos de ventanas en InfoPath:

  • La ventana de edición, que se usa cuando un usuario rellena un formulario.

  • La ventana de diseño, que se usa cuando un usuario diseña una plantilla de formulario.

Cuando se escribe código en una plantilla de formulario, la ventana de edición es la que proporciona la funcionalidad más práctica, puesto que permite utilizar una instancia de WindowObject que haga referencia al mismo para tener acceso a gran variedad de propiedades y métodos para personalizar la experiencia de edición del formulario.

Información general sobre la interfaz WindowsCollection

La interfaz WindowsCollection proporciona las siguientes propiedades que los programadores de plantillas pueden utilizar para administrar las instancias de WindowObject que contiene.

Name Descripción
Propiedad Count
Devuelve el número de objetos Window que contiene una colección.
Propiedad Item
Devuelve una referencia al objeto Window especificado. NOTA: Visual C# accede a las colecciones mediante un indexador en lugar de llamar a la propiedad Item . Por ejemplo, thisApplication.Windows[0].Caption.

Información general del objeto Window

La interfaz WindowObject proporciona el método y las propiedades siguientes que los programadores de formularios pueden utilizar para interactuar con una ventana de InfoPath. La compatibilidad con estos métodos y propiedades varía según el tipo de ventana ( XdWindowType ) con el que se esté trabajando. Algunos métodos y propiedades sólo funcionan con el tipo de ventana de editor (XdWindowType.xdEditorWindow). Los demás métodos y propiedades funcionan tanto con el tipo de ventana de editor como con el tipo de ventana de diseñador (XdWindowType.xdDesignerWindow). Asimismo, como sucede con todos los miembros del modelo de objetos de InfoPath, cuando se llama desde una plantilla de formulario, la compatibilidad con métodos y propiedades varía según el nivel de seguridad y la forma en que se haya implementado el formulario.

Name Descripción Compatibilidad con el tipo de ventana
Método Activate
Designa la ventana como la que está activa en ese momento. Tanto el tipo xdDesignWindow como el tipo xdEditorWindow
Active (propiedad)
Devuelve un valor Boolean que indica si la ventana es la que está activa en ese momento Los tipos xdDesignWindow y xdEditorWindow
Propiedad Caption
Propiedad de lectura y escritura que devuelve o establece el texto del título de la ventana representada por el objeto Window. Sólo el tipo xdEditorWindow
Método Close
Cierra una ventana. Sólo el tipo xdEditorWindow
CommandBars (propiedad)
Devuelve una referencia al objeto CommandBars de Microsoft Office. Los tipos xdDesignWindow y xdEditorWindow
Height (propiedad)
Una propiedad de lectura y escritura del tipo de entero largo que especifica el alto de la ventana representada por el objeto Window se mide en puntos. Los tipos xdDesignWindow y xdEditorWindow
Left (propiedad)
Una propiedad de lectura y escritura del tipo de entero largo que especifica la posición horizontal de la ventana representada por el objeto Window se mide en puntos. Los tipos xdDesignWindow y xdEditorWindow
MailEnvelope (propiedad)
Devuelve una referencia al objeto MailEnvelopeObject . Sólo el tipo xdEditorWindow
TaskPanes (propiedad)
Devuelve una referencia a la colección TaskPanesCollection . Los tipos xdDesignWindow y xdEditorWindow
Top (propiedad)
Una propiedad de lectura y escritura del tipo de entero largo que especifica la posición vertical de la ventana representada por el objeto Window se mide en puntos. Los tipos xdDesignWindow y xdEditorWindow
WindowType (propiedad)
Devuelve un número que indica el tipo de la ventana, según la enumeración XdWindowType . Los tipos xdDesignWindow y xdEditorWindow
Width (propiedad)
Una propiedad de lectura y escritura del tipo de entero largo que especifica el ancho de la ventana representada por el objeto Window, se mide en puntos. Los tipos xdDesignWindow y xdEditorWindow
WindowState (propiedad)
Propiedad de lectura y escritura del tipo XdWindowState que devuelve o establece el estado de la ventana representada por el objeto Window . Los tipos xdDesignWindow y xdEditorWindow
XDocument (propiedad)
Devuelve una referencia al objeto _XDocument asociado a la ventana. Sólo el tipo xdEditorWindow

Uso de las interfaces WindowsCollection y Window

El acceso a la interfaz WindowsCollection se puede obtener a través de la propiedad Windows de la interfaz Application . Al utilizar la interfaz WindowsCollection para obtener acceso a las ventanas de un formulario, se utiliza un indizador (en Visual C#) o se transmite un número entero largo a la propiedad Item (en Visual Basic) para devolver una referencia a una instancia de la interfaz WindowObject. Por ejemplo, el código siguiente establece una referencia a la primera interfaz WindowObject contenida en la interfaz WindowsCollection.

WindowObject objWindow = thisApplication.Windows[0];
Dim objWindow As WindowObject = thisApplication.Windows(0)

Sin embargo, puede acceder directamente a la ventana abierta actualmente mediante la propiedad ActiveWindow de la interfaz Application , sin pasar por WindowsCollection, como se muestra en el código siguiente.

WindowObject objWindow = thisApplication.ActiveWindow;
Dim objWindow As WindowObject = thisApplication.ActiveWindow

Nota:

[!NOTA] Al depurar un proyecto de código administrado de InfoPath, la propiedad ActiveWindow devuelve siempre el valor null porque la ventana de depuración está activa.

El acceso a la interfaz WindowObject se puede obtener mediante la propiedad Window de la interfaz View , que está asociada al documento XML subyacente del formulario. La propiedad View de la interfaz XDocument se utiliza para obtener acceso al objeto View. Por ejemplo, el código siguiente establece una referencia a la interfaz WindowObject asociada a la vista del documento XML subyacente de un formulario:

WindowObject objWindow = thisXDocument.View.Window;
Dim objWindow As WindowObject = thisXDocument.View.Window

Nota:

[!NOTA] Algunos de los métodos y las propiedades del objeto Window se utilizan sólo para editar el tipo de ventana; si se utilizan con el tipo de ventana de diseño, devolverán un error. Los métodos y propiedades que admite cada tipo de ventana se muestran en la tabla anterior. Puede utilizar la propiedad WindowType en el código para averiguar con qué tipo de ventana está trabajando.