I have a situation where we want to make the form readonly in subsequent stages.Let me put it this way-
In my process the user1 will fill the form and hit on complete button. the user2 opens the form but the form should be readonly to the user2. He should have a action button at the button called Edit and when hits on the action the same form pops up and the fields are enabled and he can make modifications.
Th form goes to User3 and the form should be again readonly with same edit button and the form pops up and he can make modifications...
The way I usually tackle state changes for a form across multiple user steps is by having a hidden text field on my form called txtStep. In my process, I then stuff this field with an appropriate value using a SetValue operation. In the form, I have code that is called on the form's initialize event that checks to see what value is in that text field. Depending on what the value is in that field, I change the form appropriately.
For example, just prior to your second user step you could use a SetValue to set the value of this text field to the string "user2". In your form's initialize event (pick any one - such as a page's initialize event), check to see what the value is. If the value is "user2" then you know to lock down the form but have the "Edit" button displayed to the user.