Window class

Office 2013 and later

Represents a window that is used in the Microsoft InfoPath application.


Namespace:  Microsoft.Office.InfoPath
Assembly:  Microsoft.Office.InfoPath (in Microsoft.Office.InfoPath.dll)

public abstract class Window

The Window objects represent the two types of windows that are used in the InfoPath application: the editing window that displays a form when a user fills out a form, and the designing window that is used in design mode when a user designs a form template.

The Window object provides properties and methods that can be used to programmatically interact with InfoPath windows, including the ability to activate or close a window and the ability to interact with the task panes and command bars that they contain. The Window object also provides the XmlForm property for accessing the form's underlying XML document that is associated with the window.

The Window objects of an InfoPath form are accessed through the Item property of the WindowCollection object. The type of window can be determined by using the WindowType property.

You can access the currently open window directly by using the ActiveWindow property of the Application object, instead of using the WindowCollection collection. You can also access the Window object that is associated with a view by using the Window property of the View object.


Some properties of the Window object are only available when using the editing window type; they will return an error if used with the designing window type.

In the following example, the ActiveWindow property is used to set a reference to the current window. Then the code checks the window type; if it is the editing window type, it displays the number of task panes contained in the window in a message box.

// Set a reference to the current window.
Window currentWindow = this.Application.ActiveWindow;

// Check if the window is an editing window;
if (currentWindow.WindowType == WindowType.Editor)
   MessageBox.Show("Number of task panes: " + 

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.