I am designing a WinForms CRUD \"like\" app for a large group of Nurses and Social Workers to interact with Client information.
There are many different forms(about
Disclaimer: I have been doing CRUDs for I don't know how long, but I'm just starting now with my first winforms app.
So, some mixed ideas:
In our current system (written using Centura/Gupta) we use a MDI-like approach. I think it is important to allow the user to start working on a new record without forcing him to close his current work, so a list of open windows is always displayed to allow quick switching between the different forms. Example:
(source: pingmbh.de)
List of open windows in the lower left.
Also this system makes it possible to open one record from inside another, e.g. open a customer, show the orders of this customer, doubleclick on one of his orders to open it and so on.
Now about winforms: After doing some research I deceided against MDI and instead use a Form containing some SplitContainers. One of this container panels shows a list of open windows, another shows the current form. Since I did not find a way to show a Form in a panel, the forms are realized as user controls. The main form keeps track of the opened windows and displays them in the window list. If the user clicks on a window in the list, or opens the same record from somewhere else in the programm, the appropriate panel is brought to the front. Picture of a work in progress:
(source: pingmbh.de)
Consider to seperate the selection of existing records from the editing of these records, i.e. show the existing records in some kind of table (like a gridview) with filter and search capabilities and let the user doubleclick these records to edit them.
I noticed on your screenshot that you have buttons for "Insert" and "Update". Is this for creating new records and saving existing records? I think a better approach is to give the user a "New" button, then open a form that has "save" and "cancel" buttons. The user may not allways remember if he started to edit a new or an existing record.
The selection screen btw is a good place for the "new record" button.