UI Design of WinForm CRUD App, What works?

前端 未结 3 915
迷失自我
迷失自我 2021-02-20 01:35

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

3条回答
  •  予麋鹿
    予麋鹿 (楼主)
    2021-02-20 01:48

    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.

提交回复
热议问题