I'm writing my own validation code for some of my forms and I'm wondering what the best way to indicate that there is a problem is.
Some ideas I've had:
- Highlight the textboxes, checkboxes or controls in red if they have an error.
- Put a small icon inside or near the control with the error (the error provider basically)
- Display a messagebox explaining the error.
- Use a balloon tooltip on controls with an error.
- Prevent the user from leaving the control (which is kinda what the binding control does)
There are obvious pros and cons for all of these. My goal is to be as least intrusive as possible and allow the users to work fast, efficiently and be interrupted as little as possible, but at the same time, if there is a problem to let them know what that problem is and how to fix it.
Highlighting the controls with errors is somewhat standard on the web, you don't fill out a box it might change colour or might bold the label next to the control and optionally supply supplemental information on fixing the error. Supplying that extra information wouldn't be as simple with a forms application though.
Using the icons or error provider is good, but to me, it's not all that intuitive. A flashing icon is okay to indicate there is a problem, but it's not very intuitive to know what that problem is, hovering over that icon, that is.
Messageboxes are totally annoying and in my opinion should only be used if there is something that REQUIRES the user to stop what they are doing and fix or do something...I'd prefer to not use that.
Balloons are bulky and intrusive looking, they eat screen real estate and are, in my opinion, buggy.
Preventing the user from leaving the control is REALLY annoying, not much feedback is provided with that and in fact, with my background in psychology, I can tell you it only causes the user to click or hit the tab key harder thinking its a hardware problem...it's only after frustration that they realize there's a problem with what they did.
Does anyone have any other ideas/combination of ideas?
Edited by zachattack05: n/a