Hi Chip: As you said there are 2 basic layouts and which you pick depends on the audience. I often put a menu item in the view menu that allows the user to select which view they want - ie ScreenReaderUserMenuItem. You can then have 2 forms and display either one depending on if the ScreenReaderMenuItem is checked. Just save that setting whenever the program is closed and read it when it first loads to have that setting propagated and automatically used as the default view of that form. If I have more than say 7 or so boxes that need to be filled in I will often use a ListBox and a TextBox on the form. Then I bind the ListBox and TextBox to a DataTable with those 2 fields. That way as a user arrows up and down in the ListBox reading the FieldNames the values can be entered or changed in the TextBox. When done editing the data I usually have a GOButton that reads the contents of the DataTable and processes the inputs or edits. This is a good way to handle larger numbers of inputs say 15 to 50 or so and since the ListBox has the ability to jump to items based on the first letter you type it is pretty fast to use. Using default values when creating the DataTable allows for faster use of the form as well and you could even use a DropDownList and have only what appears as 2 smallish boxes to handle all that input so the rest of the form can still hold even more data. Using something like a TreeView with a TextBox or other control depending on which node has focus, is another way to organize larger quantities of data and better than just say 15 labels and 15 boxes on a screen unless the project is geared twoard sighted users. The simplest method to implement and most effective if all fields are required to be entered would be to put them all on one form since a user is going to have to tab to every one anyway and set focus to any field causing an edit error. I think I might go that route if the user has to enter data in all the boxes - there would just be no way around having to navigate to each box and type something in whether using a ListBox and TextBox (or other control for input depending on which item in the ListBox has been selected), a TreeView again depending on which node is selected and the method of tabbing to a labeled TextBox and typing in info or selecting from some other control with values predefined. The advantage to a List or TreeView comes in when the user might want to enter or change only one or a couple of values from many options to save allot of tabbing and navigation - at least for screen reader users. Finally, if all fields are required I would likely just put them as individual labeled TextBoxes or Lists, edit them before processing and, if an error, display a message with the error box having focus when the error message is closed for quick fixing by the user, highlight the text in the TextBox, make a border around the errant TextBox visible or something else and your sighted users will think it kind of cool and add a touch of dynamics to your form. How far I would take the analysis and design and how complex the code would depend on my audience and whether this was a job for greenies or a freeby. Rick USA ----- Original Message ----- From: Chip Orange To: [email protected] Sent: Thursday, October 17, 2013 7:57 PM Subject: form design/layout question
Hi all, I am designing a form where I need to get a significant amount of info from the user (perhaps 15 to 20 controls). I can fit all the controls on one large form, and I'll try to group them into groups with titles and visible frames to make them appear logical, and not just scattered all over the screen. Or, the alternative, would be to do something like the WE control panel, where you have some listbox or treeview on the left controlling which groups of fields you see on the right. I have at least 3 groups of controls, perhaps 5 if I did it this way. The user would be required to go through the listbox and visit all 5 groups and tab to the right and enter the info for each group. This seems to me to be more tedious when all the fields are required (not when you're just trying to jump to one particular field to make a change). In my case all my fields are blank, and the user can type in the info or has a choice of command buttons to retrieve the data. What I'd like to know is which type of window would you rather work with? One with all the fields seen at once, or one where you must go down a listbox of groups, and then go throu each group of fields, and then return to the listbox? Reasons would be appreciated. Especially if low-vision users might find one format better. I will say that I could be certain, when a low resolution monitor is being used, that the second method would more likely fit on screen. Thanks for any thoughts. Chip
