Dynamic fields example
We start with all fields collapsed:
graphic
And we can expand each ‘Panel’ as desired:
graphic
graphic
If we expand the panels beyond the bottom of the form, we get a scroll bar:
graphic
We can also have Panels within Panels to show or hide more fields, like so:
graphic
Note that the resized field is not hidden, but actually resized:
graphic
The Panels above could easily be set to be visible depending on a field entry, this making a very dynamic form possible instead of a blank space being left.
Note too that we can, of course, resize the form, and if Panels are also anchored appropriately, they will resize:
graphic
The way we have managed the dynamic nature of this form is rather unintuitive from a design point of view. Essentially, there are two Panel fields to every visible panel, and the first controls the visibility of the second. They are all (with the exception of the third displayed panel’s dynamic fields) docked to the top of the form, and set in the order of display. As far as we can determine, this is the only way to get this kind of dynamic behaviour working.
It must also be noted that the only way to re-order panels when docked to the same container edge is to use the ‘send to back’ and ‘send to front’ actions from the context menu. This can make it very difficult to order panels effectively, and can lead to many mistakes, some of which require running through the entire panel list again. This is neither intuitive nor easy to use. I would like the tab order to be used for ordering docked panels. If done correctly, it would be very intuitive, as the tab order would naturally follow left to right, top to bottom (that may be an issue with right to left text implementations). It would also be a great deal easier to manage at design time than it is currently.