Hi there,
I have come onto a contract working on a existing large windows forms vb.net 2005 application. I have been asked to address several issues with the performance and behaviour of the application as follows:
-Child Dialog forms are not grouped with the parent, so when I minimise the child, the parent remains shown, also if the child was opened using ShowDialog then the parent cant be clicked so its a pretty bad situation. I need minimise/maximise of any form to do this for all open forms. Note there is only ever 2 forms open at a time.
-Form opening and form transitions is slow, this is I think in part to all the forms having a bitmap as there background and also the load of a new form doing quite a bit of work, data access, binding grids etc.
-Sometimes a dialog is presented (modal) and there is no way for a user to get back to there desktop or any other windows application, the current form just takes precedence over everything. If I click the windows quick launch Show desktop it gets minimised, but when I choose any other open application on my taskbar the form just comes up again to the forefront.
-Sometimes MessageBox.Show sits behind the front most form of the application; the user cannot click OK on this and has to kill the application
-Generally need to speed up the application as much as possible; it is a bit of a dog at the moment
The flow through the application is, on start up:
(Project start form) Form1 is shown choose your db connection click "OK"
> Form1 gets set as hidden and remains alive for the life of the application just hidden, loads of subsequent forms use code inside this form.
Form 2 User provides login information clicks Login
> Close this form, on the close event call a method in Form1 which shows Form3 which is like the main menu form of the application
So there is a wizard like approach for multiple forms to start with to get to form Main Menu, there after each path you can go down in the application involves hiding the Main Menu form, showing showing another form either going down a wizard chain of forms or opening a new form as a modal dialog where a next, next approach is not needed.
So two things really, one help on resolving some of the issues above, and two some suggestions that dont involve too much refactoring to improve this windows forms app to bring inline with best practices for this kind of application.
Much appreciated.