Are there any ways to improve performance when constructing several forms with large numbers of controls (500+)?
Our controls are laid out in a label + 6 text box per row configuration, as shown below:
We have used the following containers to structure our controls:
- DevExpress' XtraLayoutControl
- Panels around each row and moving manually
- Common table control
We can't use a grid as the text boxes have to be hidden on a case-by-case basis and our forms have to look fairly close to the printouts. Also, each row has it's own data type, so we need to add validation and editors for each.
The table control is the most performant, where each form takes around 2 seconds to load.
As each of these will represent a document in our software and we allow users to open multiple documents at once, we are trying to find a way to improve the performance.
One suggestion was to cache the actual form and have a state object that stores the data. However, we allow the user to see more than one document at once.
Another suggestion was to load the document in parts and show each part as it becomes loaded. This isn't ideal as we are known for having a document that looks almost exactly like the printout.
Are there any other strategies available, or should we just bight the bullet at tell our customers that this program will be slower than it's VB6 predecessor?
An example of the form design we're redeveloping is here: Link