ARe you calling this form through the ChildFormDialog control? In any case, the MaintenanceFormToolstrip takes its queue from the form. The first thing to look at is the PrimaryBusinessObject of the form. If this business object is not placed in Edit mode then this toolstrip will not behave accordingly (using the default settings).
The MaintenanceFormToolstrip can react several ways. All StrataFrame forms have IncludeInForm... properties. By default all Include settings look at the PrimaryBusinessObject except the save, which looks at all business objects. There are three options:
PrimaryBusinessobject - References only the primary business object when taking a certain action
AllBusinessObjects - All business objects on the form will be included when taking an action
DeterminedByBusinessobject - Looks at the Include properties on the business object to determine if it will be included in a certain action.
To learn more about these actions look in the help documentation under:
Business Layer -> Configuring a Business Object -> Form Include Settings
Next, the toolstrip will not change unless the EditingStateChanged event is fired. This is raised when the Edit() method on the form or business object is called. For example: MyBo.Edit().
As for the form notifying you of the changes, this is not related to the MaintenanceFormToolStrip. It has to do with the AutoShowSaveChanges property on the form. When the form is closing and the AutoShowSaveChanges property is set to True, the form will look at the business objects to see if any of them are dirty (MyBO.IsDirty). If so, it will raise the message. So just to remove any confusion, the dirty state of the BO is not related to the MaintenanceFormToolstrip.