These tips designed for Windows Forms haven't lost their relevance in the age of Web UI. If you believe otherwise, let us know (see right nav) and we'll archive them accordingly.
If you still need help, visit Website Design and User Experience and book in a consultant.
ComboBoxes are often used for filtering data. It is best to have an '-All-' option to give your user chances to select all data.
It is important to understand the idea of visual text . In a list you could see either:
- -None- or
- No activity assigned
They both have the same meaning, but the first one is immediately visible whereas the second one must be read.
When designing your form, you should try to help your user whenever it's possible. So it's a good idea to include the number of results in ComboBoxes.
In Web we have:
In Windows Forms we have a CheckedListBox. With a CheckedListBox you cannot:
- Sort data - always useful when there are more than about 20 rows
- Contain much information - can only show one field
- DataBind - always costs heaps of code
A GridView provides much richer features than ListBox, you can easily add a checkbox onto the header to allow "check all" functionality, which is impossible for ListBox.
Yes a ListView looks nicer than a DataGrid, but a Datagrid is better because it has more functionality (out of the box that is). With a ListView you cannot:
- Copy and paste - although you can select a row of data in both controls, you can't copy and paste a whole row from the ListView
- Sort data - always useful when there are more than about 20 rows
- DataBind - always saves heaps of code
Group box should only be used when you want to notify the user the controls within it are really related, such as radio buttons.
When you can't see all the text for an item in a ListView you need to expose the full text via a ToolTip.
Many times you allow a multiple selection in a grid by using a checkbox. When you do this make it easy to see the distinction of a row that is selected and one that is not. Make it subtle by dimming the unselected text.
When designing your form, it's a good idea to help your user whenever it's possible. So it's a good idea to extend your ComboBoxes to show as many results as possible to save your user from scrolling. Also, you should extend the width of the dropdown in order to show the longest items.
Use Label controls to display static text of the application. Eg. "Customer ID:" Use Text Box controls to display data (results of calculations, information, records from a database, etc.).
- Controls - Do you include '-All-' option in your ComboBoxes?
- Controls - Do you include the number of results in ComboBoxes?
- Control Choice - Do you use GridView over the CheckedListBox?
- Control Choice - Do you use a GridView (over the ListBox)?
- Control Choice - Do you use ListView over GridView (was DataGrid) for ReadOnly? (Windows Forms only)
- Control Choice - Do you avoid using Group Box and use a line to organize your form?
- Controls - Do you use a ToolTip to show the full text of hidden ListView data?
- Controls - Do you make the selected/enabled rows stand out in a datagrid?
- Controls - Do you extend the size of your ComboBoxes to show as many results as possible? (Windows Forms Only)
- Controls - Do you use Text Boxes for displaying data?
- Connection Stream - Do you use a UDL when getting database settings?
- Being Pedantic - Do your buttons have a mnemonic?
- Controls - Do you indicate when fields are "read only" or "calculated"?
- Controls - Do you set row select mode as "FullRowSelect" for DataGridView if it is read only? (Windows Forms Only)
- Do your controls autopostback?