Share via


XmlForm.FormState property

Gets a reference to a property bag of type System.Collections.IDictionary that browser-enabled forms can use to maintain state information across sessions on the server.

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

Syntax

'Declaration
Public MustOverride ReadOnly Property FormState As IDictionary
    Get
'Usage
Dim instance As XmlForm
Dim value As IDictionary

value = instance.FormState
public abstract IDictionary FormState { get; }

Property value

Type: System.Collections.IDictionary
An IDictionary that contains any user-defined state variables that were defined in the declarations section of the form code.

Remarks

This member can be accessed without restrictions.

This type or member can be accessed from code running in forms opened in Microsoft InfoPath Filler or in a Web browser.

Examples

The following code example shows a design pattern for creating a state variable in the declarations section of the FormCode class (before the InternalStartup method) that functions as a counter. The following code example verifies that the _Counter variable is a null reference (Nothing in Visual Basic) before returning the value to avoid errors where the FormState array was not initialized.

private int _Counter
{
   get
   {
      if(FormState["_Counter"] != null)
      {
         return (int) FormState["_Counter"];
      }
      else
      {
         return 0;
      }
   }
   set
   {
      FormState["_Counter"] = value;
   }
}
Private Property _Counter As Integer
   Get
      If(FormState("_Counter") != null) Then
         _Counter = DirectCast(FormState("_Counter"), Integer)
      Else
         _Counter = 0
      End If
   End Get
   Set
      FormState("_Counter") = value
   End Set
End Property

See also

Reference

XmlForm class

XmlForm members

Microsoft.Office.InfoPath namespace